fastjson序列化时,若有自定义对象,默认会检查对象之间的重复性,若两个值完全相同,后面的值就会引用的前面的值
出现”$ref”:”$[0]”
我在初始jpa时,结果集种的重复数据在进行
JSONObject._toJSONString(_all_)_
时出现了引用检测的问题
github Issues
https://github.com/alibaba/fastjson/issues?q=%24ref%22%3A%22%24%5B0%5D+ 在github lssues中由很多这样的问题
处理步骤都是关闭引用检测
SerializerFeature.DisableCircularReferenceDetect
System.out.println("关闭FastJson的引用检测:"+JSONObject.toJSONString(all, SerializerFeature.DisableCircularReferenceDetect));
问题解析的博客
注意
Gson 不会出现这个问题
关闭引用检测需要谨慎
https://github.com/alibaba/fastjson/issues/120
- 有循环时,如果使用 SerializerFeature.DisableCircularReferenceDetect,会报错java.lang.StackOverflowError