在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]