fastjson 重複引用和循環引用問題

數據傳輸使用json格式再方便不過了。
fastjson 由阿里巴巴那夥人使用Java語言編寫,號稱最快的JSON庫
前兩天遇到一個問題 後臺的數據轉化爲json字符串後發送到前臺出現了$ref字樣的東西,後來明白了這是引用,在傳輸的數據中出現相同的對象時,fastjson默認開啓引用檢測將相同的對象寫成引用的形式.
說到引用分爲兩種,重複引用和循環引用前端

重複引用

指一個對象重複出現屢次json

循環引用

指你內心有我,我內心有你(互相引用),這個問題比較嚴重,若是處理很差就會出現StackOverflowError異常code

重複引用的解決方法;

1.單個關閉 JSON.toJSONString(object, SerializerFeature.DisableCircularReferenceDetect);
2.全局配置關閉 JSON.DEFAULT_GENERATE_FEATURE |= SerializerFeature.DisableCircularReferenceDetect.getMask();

循環引用的解決方法:

1.若是你前端用不到這個屬性在該屬性的get方法上加上註解@JSONField(serialize=false),
  這樣該屬性就不會被序列化出來,這個也能夠解決重複引用
2.修改表結構,出現循環引用了就是一個很失敗的結構了,否則準備迎接StackOverflowError異常。
相關文章
相關標籤/搜索