現在微服務、前後分離什麼的那麼流行,多數新的程序在返數據給前端的時候直接返回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
望大家遇到此類問題注意下。