国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

fastjson 重復(fù)引用和循環(huán)引用問題

zeyu / 2336人閱讀

數(shù)據(jù)傳輸使用json格式再方便不過了。
fastjson 由阿里巴巴那伙人使用Java語言編寫,號稱最快的JSON庫
前兩天遇到一個問題 后臺的數(shù)據(jù)轉(zhuǎn)化為json字符串后發(fā)送到前臺出現(xiàn)了$ref字樣的東西,后來明白了這是引用,在傳輸?shù)臄?shù)據(jù)中出現(xiàn)相同的對象時,fastjson默認(rèn)開啟引用檢測將相同的對象寫成引用的形式.
說到引用分為兩種,重復(fù)引用和循環(huán)引用

重復(fù)引用

指一個對象重復(fù)出現(xiàn)多次

循環(huán)引用

指你心里有我,我心里有你(互相引用),這個問題比較嚴(yán)重,如果處理不好就會出現(xiàn)StackOverflowError異常

重復(fù)引用的解決方法;
1.單個關(guān)閉 JSON.toJSONString(object, SerializerFeature.DisableCircularReferenceDetect);
2.全局配置關(guān)閉 JSON.DEFAULT_GENERATE_FEATURE |= SerializerFeature.DisableCircularReferenceDetect.getMask();

循環(huán)引用的解決方法:
1.如果你前端用不到這個屬性在該屬性的get方法上加上注解@JSONField(serialize=false),
  這樣該屬性就不會被序列化出來,這個也可以解決重復(fù)引用
2.修改表結(jié)構(gòu),出現(xiàn)循環(huán)引用了就是一個很失敗的結(jié)構(gòu)了,不然準(zhǔn)備迎接StackOverflowError異常。


文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/70937.html

相關(guān)文章

  • JPA 一對多雙向映射 結(jié)果對象相互迭代 造成堆棧溢出問題方法

    摘要:問題在雙向映射時,會相互包含對方的實例,相互引用,造成遞歸迭代,堆棧溢出。分析在后端向前端傳遞的時候會將數(shù)據(jù)序列化,轉(zhuǎn)為,這時會出現(xiàn)循環(huán)引用造成堆棧溢出解決方案解決方法就是在轉(zhuǎn)換時忽略循環(huán)字段。 問題: JPA 在雙向映射時,會相互包含對方的實例,相互引用,造成遞歸迭代,堆棧溢出(java.lang.StackOverflowError)。 分析: 在后端向前端傳遞的時候會將數(shù)據(jù)序列化...

    diabloneo 評論0 收藏0
  • FastJson轉(zhuǎn)換字符串引用相同對象產(chǎn)生的錯誤

    摘要:然后,斷點看一下轉(zhuǎn)換的內(nèi)容,找到看到這里突然想起這個好像前面有遇到過,下面簡單說下產(chǎn)生問題的原因這代表了是一種引用,它是在轉(zhuǎn)換字符串的時候出現(xiàn)的,在引用了同一對象時出現(xiàn)。 問題產(chǎn)生 最開始問題是在C層的單元測試中產(chǎn)生的: showImg(https://segmentfault.com/img/bVbfUny?w=1322&h=278); 報錯提示我們說:引用瞬態(tài)值,引用之前應(yīng)該保存一...

    focusj 評論0 收藏0

發(fā)表評論

0條評論

zeyu

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<