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

  1. System.out.println("关闭FastJson的引用检测:"+JSONObject.toJSONString(all, SerializerFeature.DisableCircularReferenceDetect));

问题解析的博客

注意

Gson 不会出现这个问题

关闭引用检测需要谨慎

https://github.com/alibaba/fastjson/issues/120

  • 有循环时,如果使用 SerializerFeature.DisableCircularReferenceDetect,会报错java.lang.StackOverflowError