本文共 3018 字,大约阅读时间需要 10 分钟。
在Ajax的应用中,我们通常需要将JavaBean,List,Map等对象转为Json串,方便页面解析
需要导入的jar包有
commons-beanutils-1.7.0.jar commons.collections-3.2.jar commons-lang-2.4.jar commons-logging-1.1.jar ezmorph-1.0.4.jar jdom.jar json-lib-2.2.2-jdk15.jar json-lib-2.2.3-jdk13.jar
POJO类
Student类
public class Student { private String id; private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; }}Person类:
public class Person { private String name; private int age; private Student student; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Student getStudent() { return student; } public void setStudent(Student student) { this.student = student; } }
1、将JavaBean转为Json串
public void test1(){ Student stu = new Student(); stu.setId("111"); stu.setName("stu1"); Person p = new Person(); p.setAge(18); p.setName("Person1"); p.setStudent(stu); JSONObject json = JSONObject.fromObject(p);//将对象转json System.out.println(json.toString()); Person jb = (Person)JSONObject.toBean(json,Person.class); //将json转为JavaBean System.out.println(jb.getAge()); System.out.println(jb.getName());}输出结果为:{"age":18,"name":"Person1","student":{"id":"111","name":"stu1"}}
2、将List转为Json
public void test2(){ List list1 = new ArrayList(); list1.add( "first" ); list1.add( "second" ); JSONArray arrayToJson = JSONArray.fromObject( list1 ); System.out.println(arrayToJson.toString()); System.out.println("--------------"); List list2 = new ArrayList(); Student s1 = new Student(); s1.setId("111");s1.setName("aaa"); Student s2 = new Student(); s2.setId("111");s2.setName("aaa"); list2.add(s1); list2.add(s2); arrayToJson = JSONArray.fromObject(list2); System.out.println(arrayToJson.toString());}输出结果:
["first","second"]
-------------- [{"id":"111","name":"aaa"},{"id":"111","name":"aaa"}]3、将Set转为Json
public void test5(){ Set set = new HashSet(); set.add("aaa"); set.add("bbb"); set.add("ccc"); JSONArray jsonArray = JSONArray.fromObject(set); System.out.println(jsonArray.toString()); System.out.println("--------------"); Student stu = new Student(); stu.setId("111");stu.setName("aaa"); jsonArray = JSONArray.fromObject(stu); System.out.println(jsonArray.toString());}
输出结果:
["aaa","ccc","bbb"]
-------------- [{"id":"111","name":"aaa"}]由此可见,List转化为Json与Set转换为Json的代码基本相同
4、Map对象转化为Json
public void test3(){ Map map = new HashMap(); map.put("key1","aaa"); map.put("key2","bbb"); map.put("key3","ccc"); map.put("key4","ddd"); JSONObject obj = JSONObject.fromObject(map); System.out.println(obj.toString());}输出结果:{"key4":"ddd","key3":"ccc","key2":"bbb","key1":"aaa"}
5、数组类型转化为json串
public void test4(){ boolean[] boolArray = new boolean[] { true, false, true }; JSONArray jsonArray1 = JSONArray.fromObject(boolArray); System.out.println(jsonArray1.toString());}输出结果:[true,false,true]
转载地址:http://ljcrj.baihongyu.com/