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

JSON的序列化和反序列化

json的序列化和反序列化在现在的javaweb中特别是ajax中使用的比较频繁,现在本人就这种技术提出自己的使用心得。

我的pojo对象的结构是这样的

部门表和员工表????1对多的关系

部门对象

public class Dept implements java.io.Serializable {
private Integer depid;//部门ID
private String depname;//部门名称
private Set emps = new HashSet(0);//员工集合
}
?

员工对象

public class Emp implements java.io.Serializable {
private Integer empid;//员工id
private Dept dept;//部门
private String empname;//员工名称
private Date birthday;//生日
}
?

1.json字符串序列化成对象

/**
 * 通过json转换成对象
 * @author 凤生禾予
 */
public void jsonToObject(){
Date d=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
StringBuffer str=new StringBuffer();
// json字符串
str.append("{empid:1,dept:{depid:1,depname:'开发部'},empname:'张三',birthday:'"+sdf.format(d)+"'}");
// 使用JSONObject将json序列化对象
JSONObject obj=JSONObject.fromObject(str.toString());
// 将JOSNObject对象转换成pojo对象
Emp emp=(Emp) JSONObject.toBean(obj,Emp.class);
System.out.println(emp.getBirthday());
}
?

这里需要注意的是json字符串的写法以{}表示一个对象,字符串必须加引号?