如果现在要想使用java生成JSON数据可以有两种做法:
①利用StringBuffer进行字符串数据的拼凑;
②为了简化开发,提供有JSON的生成工具包,并且这个工具包有一个最大的好处可以自动采用反射将VO转为JSON。
生成单值的JSON数据
JSONObject obj = new JSONObject() ; // 定义一个描述json的数据
obj.put("number",10) ;
obj.put("name", "测试") ;
obj.put("data", new Data()) ;
String str = obj.toString() ; // 将保存的数据变为字符串
System.out.println(str);
{“number”:10,”name”:”测试”,”avg”:”xxxx-xx-xx xx:xx:xx”}
保存简单数组
JSONObject obj = new JSONObject() ; // 要定义一个描述json的数据
obj.put("number",10) ;
obj.put("name", "测试") ;
obj.put("data", new Data()) ;
JSONArray arr = new JSONArray() ;
arr.add("A系统") ;
arr.add("B系统") ;
arr.add("C系统") ;
obj.put("business", arr) ;
String str = obj.toString() ; // 将保存的数据变为字符串
System.out.println(str);
{“number”:10,”name”:”测试”,”avg”:”xxxx-xx-xx xx:xx:xx”,”business”:[“A系统”,”B系统”,”C系统”]}
存放复杂数据
JSONObject obj = new JSONObject() ; // 要定义一个描述json的数据
obj.put("number",10) ;
obj.put("name", "测试") ;
obj.put("data", new Data()) ;
JSONArray arr = new JSONArray() ;
arr.add("A系统") ;
arr.add("B系统") ;
arr.add("C系统") ;
obj.put("business", arr) ;
JSONArray emps = new JSONArray() ; // 定义一个数组,每个数组保存多个JSONObject
for (int x = 0 ; x < 3 ; x ++) {
JSONObject eobj = new JSONObject() ;
eobj.put("empno", x) ;
eobj.put("ename", "张三 - " + x) ;
eobj.put("salary", 1000.0 * x) ;
emps.add(eobj) ;// 保存数组之中
}
obj.put("allEmps", emps) ;
String str = obj.toString() ; // 将保存的数据变为字符串
System.out.println(str);
{
“number”:10,
“name”:”测试”,
“avg”:”xxxx-xx-xx xx:xx:xx”,
“business”:[“A系统”,”B系统”,”C系统”],
“allEmps”:[
{“empno”:0,”ename”:”张三 - 0”,”salary”:0},
{“empno”:1,”ename”:”张三 - 1”,”salary”:1000},
{“empno”:2,”ename”:”张三 - 2”,”salary”:2000}]}
使用JSON还有许多很便利的地方,比如可以直接保存VO类对象,或者特定的集合。