出現$ref: "$.list[2]"的緣由是由於循環引用/內存對象重複。spa
$ref」:」..」 上一級
「$ref」:」@」 當前對象,也就是自引用
「$ref」:」$」 根對象
{"$ref":"../.."} 引用父對象的父對象
「$ref」:」$.children.0」 基於路徑的引用,至關於root.getChildren().get(0)對象
那麼什麼是重複/循環引用?內存
簡單說,重複引用就是一個集合/對象中的多個元素/屬性同時引用同一對象,循環引用就是集合/對象中的多個元素/屬性存在相互引用致使循環。get
解決辦法:關閉循環引用循環
JSONObject.toJSONString(map,SerializerFeature.DisableCircularReferenceDetect);//map是結果