关于fastjson 对象转json出现$ref

    现在微服务、前后分离什么的那么流行,多数新的程序在返数据给前端的时候直接返回json 数据,这样json工具就有用武之地了常用的json工具有 org.json、Gson 、albaba的fastjson。

    昨天本来是用fastjson 对象转json了,发现有些重复引用的对象 会如下展示{"$ref":"$.data.list[0].list[34]"} 

看着就像是坐标,这是什么情况?

为了解决情况立即换成了Gson 就没了刚的情况,但是这是什么原因,后来百度了才知道,原来falsejson为了防止stackoverflow所以做了如下检测,

DisableCircularReferenceDetect来禁止循环引用检测:

JSON.toJSONString(..., SerializerFeature.DisableCircularReferenceDetect)

当进行toJSONString的时候,默认如果重用对象的话,会使用引用的方式进行引用对象。

引用 描述
"$ref":".." 上一级
"$ref":"@" 当前对象,也就是自引用
"$ref":"$" 根对象
"$ref":"$.children.0" 基于路径的引用,相当于 root.getChildren().get(0)

以上引用于 https://www.cnblogs.com/huanghongbo/p/8945378.html  

望大家遇到此类问题注意下。

猜你喜欢

转载自blog.csdn.net/xzyxcy/article/details/86504172