在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] 版权声明:本文为nuoWei_SenLin原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。