0
点赞
收藏
分享

微信扫一扫

“$ref“: “$.message[0].day\\_16[1]“的问题


在返回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);


举报

相关推荐

0 条评论