JSON 數據重復 出現$ref


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))

 

然后在傳到前端  前端解析就沒問題了   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM