java操作json對象出現(xiàn)StackOverflow錯誤的問題及解決
java操作json對象出現(xiàn)StackOverflow錯誤
今天在做項目的時候,遇到一個非常怪異的問題。一個java實體類中存在多個屬性,每一個屬性都是JsonObject類型。
在程序中用setXXX方法對這些屬性設置值的時候,竟然報了Stack Overflow的錯誤。仔細檢查了一遍程序,確定沒有循環(huán)引用和死遞歸的發(fā)生。最后經(jīng)過和查閱相關資料,終于發(fā)現(xiàn)我用的JsonObject是net.sf.json包下的類。
在這個類庫中的json對象可能會存在多個對象之間的相互引用,導致程序最終報出了Stack Overflow的錯誤。
解決方法
將成員屬性的類型設置為String字符串,避免出現(xiàn)上面的情況?;蛘呤褂胒astjson來處理,fastjson在處理json對象的時候不會出現(xiàn)上面說的情況。
記錄一次json轉換對象的異常
今天在寫代碼時碰到了這樣一個問題,將Java對象轉換為JOSN字符串時,出現(xiàn)了重復的字段“OPEN”和“TIMESTAMP”
這是Java對象代碼
經(jīng)實驗發(fā)現(xiàn)只有這兩個字段會出現(xiàn)重復情況,猜測可能時由于該字段是特殊別名
對實例類做如下改動
成功修復
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
基于Java實現(xiàn)動態(tài)切換ubuntu壁紙功能
這篇文章主要為大家詳細介紹了如何使用 Java 在 Ubuntu Linux 系統(tǒng)中實現(xiàn)自動切換壁紙的示例程序,感興趣的小伙伴可以跟隨小編一起學習一下2024-11-11spring AOP定義AfterThrowing增加處理實例分析
這篇文章主要介紹了spring AOP定義AfterThrowing增加處理,結合實例形式分析了spring面向切面AOP定義AfterThrowing相關實現(xiàn)步驟與操作技巧,需要的朋友可以參考下2020-01-01Spring mvc工作原理_動力節(jié)點Java學院整理
這篇文章主要為大家詳細介紹了Spring mvc工作原理的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08