使用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这个字段也要加上,否则会报不支持定位的更新和删除的错误。具体原因现在不明


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值