關於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  

望大家遇到此類問題注意下。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章