出现$ref: "$.list[2]"的缘由是由于循环引用/内存对象重复。spa
$ref”:”..” 上一级
“$ref”:”@” 当前对象,也就是自引用
“$ref”:”$” 根对象
{"$ref":"../.."} 引用父对象的父对象
“$ref”:”$.children.0” 基于路径的引用,至关于root.getChildren().get(0)对象
那么什么是重复/循环引用?内存
简单说,重复引用就是一个集合/对象中的多个元素/属性同时引用同一对象,循环引用就是集合/对象中的多个元素/属性存在相互引用致使循环。get
解决办法:关闭循环引用循环
JSONObject.toJSONString(map,SerializerFeature.DisableCircularReferenceDetect);//map是结果