Java对象转为Json串

在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版权协议,转载请附上原文出处链接和本声明。