使用JSON-lib时报There is a cycle in the hierarchy!错误的解决方案

今天使用JSON.fronObject()时,报出了There is a cycle in the hierarchy!错误,原因就是用的POJO类与其他类之间有引用关系,具体可以进入PO类,应该会有这样一段

private Set orderInfos = new HashSet(0);
private Set staffMoneyInfos = new HashSet(0);
//.....其他代码

这时JSON序列化该对象时,引用来引用去,最后进了死循环。。所以禁止序列化这个属性即可


解决方法:

添加如下代码:

JsonConfig config = new JsonConfig();
config.setIgnoreDefaultExcludes(false);  //设置默认忽略
config.setExcludes(new String[]{"orderInfos","staffMoneyInfos","companyStaffInfos","hibernateLazyInitializer"});
///////////////////////////
/////////////////////转化json时就这样
JSONObject staffObj = JSONObject.fromObject('你要序列化的对象',config);
				


其中,hibernateLazyInitializer这个字段也要加上,否则会报不支持定位的更新和删除的错误。具体原因现在不明


你可能感兴趣的:(json,easyui,异常,解决方案,hierarchy)