成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

zeyu / 2361人閱讀

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

重復(fù)引用

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

循環(huán)引用

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

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

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


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

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/70937.html

相關(guān)文章

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

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

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

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

    focusj 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<