日期:2014-05-16  浏览次数:20357 次

java 方式的将 java 对象以及 list 或者 map 转化为 json 数据
JavajsonAjax.net

学会了在
j2ee中使用ajax后,
有时候从服务器返回客户端的数据是对象,自己手动拼凑
json
字符串容易出错,
通过谷歌知道了
json-lib

这个类库,

方便的支持

java

中对象到

json

字符串的转化。

source-forge



json-lib

介绍说,需要





jakarta commons-lang 2.4



jakarta commons-beanutils 1.7.0



jakarta commons-collections 3.2



jakarta commons-logging 1.1.1



ezmorph 1.0.6 这些jar
包的支持,下载下来试了一把,挺好用的,写出来,与大家分享。
代码如下:
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 Test {
public static void main(String[] args) {



//

当是对象的时候





Student student = new Student();



student.setAge(18);



student.setName("zhangsan");



student.setSex("male");



JSONObject jsonObject = JSONObject.fromObject(student);



System.out.println(jsonObject);//

输出

{"age":18,"name":"zhangsan","sex":"male"}



//

当是数组或

list

的时候





Student[] stus = new Student[5];



List<Student> stuList = new ArrayList<Student>();



for (int i = 0; i < stus.length; i++) {

 

stus[i] = new Student();



stus[i].setAge(i*10+8);



stus[i].setName("zhang"+i);



stus[i].setSex("male");



//

添加到

list,

一会儿用





stuList.add(stus[i]);



}



JSONArray jsonArray = JSONArray.fromObject(stus);



System.out.println(jsonArray);//

和下面打印的结果相同





//







[{"age":8,"name":"zhang0","sex":"male"},{"age":18,"name":"zhang1","sex":"male"},{"a

ge":28,"name":"zhang2","sex":"male"},{"age":38,"name":"zhang3","sex":"male"},{"ag

e":48,"name":"zhang4","sex":"male"}]



JSONArray jsonArrayFromList = JSONArray.fromObject(stuList);



System.out.println(jsonArrayFromList);//

和上面打印的结果相同





//

当既有对象又有数组的时候





Map<String,Object> map = new HashMap<String,Object>();



Teacher teacher = new Teacher();



teacher.setAge(30);



teacher.setName("laoshi");



teacher.setSex("male");



map.put("teacher", teacher);



map.put("student", stuList);



JSONObject jsonObjectFromMap = JSONObject.fromObject(map);



System.out.println(jsonObjectFromMap);



//

结果:





//{"student":[{"age":8,"name":"zhang0","sex":"male"},{"age":18,"name":"zhang1","se

x":"male"},{"age":28,"name":"zhang2","sex":"male"},{"age":38,"name":"zhang3","sex"

:"male"},{"age":48,"name":"zhang4","sex":"male"}],"teacher":{"age":30,"name":"laosh

i","sex":"male"}}



}