记录解决FastJson循环地址引用问题。
Fastjson循环地址引用
前言
一、Fastjson循环地址引用产生原因?
在查看源代码的情况下,发现在每次拼接json数据的时候,fastjson都会记录当前处理的数据是不是完全包含之前出现过的数据。第一次拼接时是不做处理的,但是再第二次做处理时,通过开关SerializerFeature.DisableCircularReferenceDetect来校验是否进行相同数据引用替换?其实fastjson这样做的初衷应该是防止有的对象之间是真正的相互引用,导致死循环。
二、解决方式
1.配置SerializerFeature
代码如下(示例):
JSON.toJSONString(demoBOList, SerializerFeature.DisableCircularReferenceDetect);
总结
出现问题之后,应该从源码中找问题,找根本原因而不是直接从BD、Google中查出来结果,要知其所以然。