1,出现"$ref"的原因
循环引用:当一个对象包含另一个对象时,fastjson就会把该对象解析成引用。引用是通过$ref标示的。
2,$ref引用的描述
- "$ref":".." 上一级
- "$ref":"@" 当前对象,也就是自引用
- "$ref":"$" 根对象
- "$ref":"$.children.0" 基于路径的引用,相当于 root.getChildren().get(0)
3,解决方案
fastjson提供了多种json转换方案,其中有禁止循环引用的方案
String jsonString = JSON.toJSONString(object, SerializerFeature.DisableCircularReferenceDetect);