问题:当使用jsonlib 转换 hibernate的延迟加载对象时,会出现报错。问题大致如下:
有一个User对象,里面有个shops属性:
public class User implements java.io.Serializable {
private String userName;
......
private Set shops = new HashSet(0);//延迟加载对象
}
将查询到的用户集合转换为json字符串:
List<User> userList = userService.getUser();
JSONObject jsonObject = JSONObject.fromObject(userList);//出错,无法转换为json字符串
解决方法:
通过jsonconfig实例,对包含和需要排除的属性进行方便的添加或删除
//提供了一个过滤作用,如果遇到关联的对象时他会自动过滤掉,不去执行关联关联所关联的对象。
JsonConfig config = new JsonConfig();
config.setExcludes( new String[]{ "shops" ,"comments" } ) ;//在这里添加要过滤的属性名
JSONObject jsonObject = JSONObject.fromObject(userList,config);