在返回json的时候,我用了缓存,数据就可以循环复用,但是最后出来的JSON中含有
"$ref": "$.message[0].day\\_16[1]"
这是循环应用造成的
问题原因分析:
循环引用:当一个对象包含另一个对象时,fastjson就会把该对象解析成引用,引用是通过$ref标示的,下面介绍一些引用的描述:
"$ref":".." 上一级
"$ref":"@" 当前对象,也就是自引用
"$ref":"$" 根对象
"$ref":"$.children.0" 基于路径的引用,相当于 root.getChildren().get(0)
解决方案:
解决也非常简单,既然知道了是循环引用引起的,那我们直接禁止循环引用就可以了
return JSON.toJSONString(resultMap, SerializerFeature.DisableCircularReferenceDetect);