JSONArray 類型 如果我們往里面add數據的時候 如果數據相同,那么就會被替換成 $ref: 也就是被簡化了 因為數據一樣所直接 指向上一條數據
循環引用:當一個對象包含另一個對象時,fastjson就會把該對象解析成引用。引用是通過$ref標示的,下面介紹一些引用的描述
- "$ref":".." 上一級
- "$ref":"@" 當前對象,也就是自引用
- "$ref":"$" 根對象
- "$ref":"$.children.0" 基於路徑的引用,相當於 root.getChildren().get(0)
例如下面這3個銀行卡都是建行的,那么就會出現這個問題,因為bank信息完全一致
因為我們要在前端展示數據 所以這樣肯定不對 ,那么如果解決呢
網上都說是加上SerializerFeature.DisableCircularReferenceDetect
1 首先把JSONArray 轉成string 這個時候加上SerializerFeature.DisableCircularReferenceDetect
JSONArray.toJSONString(userBankJsonArray, SerializerFeature.DisableCircularReferenceDetect)
2 因為之前是JSON格式的 所以我們還要把string轉成JSON
JSONObject.parse(JSONArray.toJSONString(userBankJsonArray, SerializerFeature.DisableCircularReferenceDetect))
然后在傳到前端 前端解析就沒問題了