`
zc985552943
  • 浏览: 287843 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Babe4ca6-5e6f-33aa-9078-762ee3ccfb7e
云计算--hadoop
浏览量:11530
5e98c2c1-2a82-3388-bc80-7fca0170bb12
redis解说
浏览量:26700
088014c7-4d3f-39ce-b72e-4ebe7046a134
MongoDB读书笔记
浏览量:15674
D2b74847-c860-3e26-96fe-3fa4498d6348
Maven读书笔记
浏览量:26757
688db20f-402d-3a1d-8188-d6153d6c7465
Java通信
浏览量:13441
社区版块
存档分类
最新评论

java构建json

    博客分类:
  • json
阅读更多

众所周知,json是一个轻量级数据传递工具,页面上使用后台传递的json数据对象然后解析展示在页面上。了解json可以参考http://www.w3school.com.cn/json/json_syntax.asp。这是json的语法很简单。

数组:[]

对象:{}

取数组元素:[i]

去对象元素:.

下面贴代码,根据代码了解json

这个类是json的测试类

 

package com.sinosoft.util;

import ins.framework.web.Struts2Action;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class JsonTest extends Struts2Action {
	public static void main(String args[]){
		Dog g = new Dog();     //
		ShiZi sz = new ShiZi();     //
		sz.setAge(1);    //
		sz.setTizhong(0.23);
		g.setName("abc") ;
		g.setShizi(sz);
		JSONObject jo = new JSONObject();
		Map<String, String> m = new HashMap<String, String>();
		m.put("1", "a");
		m.put("2", "b");
		m.put("3", "c");
		Map<String, String> m1 = new HashMap<String, String>();
		m1.put("1", "a");
		m1.put("2", "b");
		m1.put("3", "c");
		List<Map> list = new ArrayList<Map>();
		list.add(m);
		list.add(m1);
		JSONArray ja1 = JSONArray.fromObject(m);
		JSONArray ja2 = JSONArray.fromObject(list);
		JSONArray ja3 = JSONArray.fromObject(g);
		System.out.println(ja1.toString());
		System.out.println(ja2.toString());
		System.out.println(ja3.toString());
		jo.put("date1", ja1);
		jo.put("date2", ja2);
		jo.put("date3", ja3);
		System.out.println(jo.toString());
		
		try {
			Connection conn = getConn();
			Statement sm = conn.createStatement();
			ResultSet rs = sm.executeQuery("select u.uname,msg.content,msg.createTime from user u,usermsginfo um ,message msg  where u.id = um.user_id and um.message_id = msg.id");
			Map<String,String> maps = null; 
			List<Map> lists = new ArrayList<Map>();
			while(rs.next()){
				maps = new HashMap<String, String>();
				maps.put("uname",rs.getString(1) );
				maps.put("content", rs.getString(2));
				maps.put("crateTime", rs.getDate(3).toString());
				lists.add(maps);
			}
			JSONArray ja4 = JSONArray.fromObject(lists);
			JSONObject jo1 = new JSONObject();
			jo1.put("date", ja4);
			System.out.println(jo1.toString());
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	public static   Connection  getConn() throws Exception{
		Class.forName("com.mysql.jdbc.Driver");
		 return DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
	}
}

 

这个是测试类用的Dog类,Dog类里面又有一个类ShiZi

 package com.sinosoft.util;

public class Dog {
	private String name;
	private ShiZi shizi;
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public ShiZi getShizi() {
		return shizi;
	}

	public void setShizi(ShiZi shizi) {
		this.shizi = shizi;
	}

	public void shark(){
		System.out.println("叫");
	}
}

ShiZi类

 package com.sinosoft.util;

public class ShiZi {
	private int age;
	private double tizhong;
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public double getTizhong() {
		return tizhong;
	}
	public void setTizhong(double tizhong) {
		this.tizhong = tizhong;
	}
}

 打印结果:[{"3":"c","2":"b","1":"a"}]

[{"3":"c","2":"b","1":"a"},{"3":"c","2":"b","1":"a"}]
[{"name":"abc","shizi":{"tizhong":0.23,"age":1}}]
{"date3":[{"name":"abc","shizi":{"tizhong":0.23,"age":1}}],"date2":[{"3":"c","2":"b","1":"a"},{"3":"c","2":"b","1":"a"}],"date1":[{"3":"c","2":"b","1":"a"}]}
{"date":[{"content":"aa","uname":"abc","crateTime":"2012-03-15"},{"content":"GADRGADSGASDG","uname":"abc","crateTime":"2012-04-09"},{"content":"argeargearg","uname":"abc","crateTime":"2012-04-09"}]}

 请参考打印结果来对比程序,这样你会很好明白java怎么构建成json的。然后通过servlet的out对象将json写道页面,这样你就可以在页面使用json对象了。

我简单介绍一下吧,如果是标准pojo对象那么通过JSONArray.fromObject(对象A)那么它将会将对象A包装成{A对象属性1:属性值1...A对象属性n:属性值n}。纯list对象里面放着[a,b,c,d]那么通过JSONArray.fromObject转换之后变为{1:a,2:b,3:c,4:d}。如果list里面放的是map那么就会打印出[{"3":"c","2":"b","1":"a"},{"3":"c","2":"b","1":"a"}]。尽量使用list里面放map这种格式,因为后期你在页面取值的时候方便一些!!!

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics