java 使用json-lib转json出现死循环

转json出现死循环

这是个很常见的异常,就像我们重写了A类和B类的toString()方法,然后这两个类的属性都有对方的引用,打印A类的toString时候也会造成死循环,报的异常好像是栈溢出。因为A类的toString方法有B类的引用,程序执行到要打印B类的值的时候就会去找B类的toString方法,而B类的toString方法里面又有A类的引用…然后就造成死循环。同理转json时候也会出现这种情况。

所以只要是两个类都持有对方的引用生成json时候就会出现死循环

这个时候我们就要在转json格式前将会造成死循环的字段去掉。
json-lib里面有个对象叫JsonConfig 就可以让我们筛选掉我们不要的字段
使用api如下

JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes(new String[]{"","","",...});//有多少要晒选掉的属性就填多少个再里面,直接填属性名就可以
//然后再生成json,第一个参数填要生成json的对象,第二个就填上面要jsonConfig
 String json = JSONObject.fromObject( obj ,  jsonConfig ).toString();//JSONArray也同样有这个参数列表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值