java操作json對象出現(xiàn)StackOverflow錯誤的問題及解決
java操作json對象出現(xiàn)StackOverflow錯誤
今天在做項目的時候,遇到一個非常怪異的問題。一個java實體類中存在多個屬性,每一個屬性都是JsonObject類型。
在程序中用setXXX方法對這些屬性設(shè)置值的時候,竟然報了Stack Overflow的錯誤。仔細檢查了一遍程序,確定沒有循環(huán)引用和死遞歸的發(fā)生。最后經(jīng)過和查閱相關(guān)資料,終于發(fā)現(xiàn)我用的JsonObject是net.sf.json包下的類。
在這個類庫中的json對象可能會存在多個對象之間的相互引用,導(dǎo)致程序最終報出了Stack Overflow的錯誤。
解決方法
將成員屬性的類型設(shè)置為String字符串,避免出現(xiàn)上面的情況?;蛘呤褂胒astjson來處理,fastjson在處理json對象的時候不會出現(xiàn)上面說的情況。
記錄一次json轉(zhuǎn)換對象的異常

今天在寫代碼時碰到了這樣一個問題,將Java對象轉(zhuǎn)換為JOSN字符串時,出現(xiàn)了重復(fù)的字段“OPEN”和“TIMESTAMP”

這是Java對象代碼

經(jīng)實驗發(fā)現(xiàn)只有這兩個字段會出現(xiàn)重復(fù)情況,猜測可能時由于該字段是特殊別名
對實例類做如下改動

成功修復(fù)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
JDBC連接SQL?Server數(shù)據(jù)庫實現(xiàn)增刪改查的全過程
實際開發(fā)中手動的輸入SQL語句是少之又少,大多數(shù)情況下是通過編譯代碼進行來控制自動執(zhí)行,下面這篇文章主要給大家介紹了關(guān)于JDBC連接SQL?Server數(shù)據(jù)庫實現(xiàn)增刪改查的相關(guān)資料,需要的朋友可以參考下2023-04-04
Linux系統(tǒng)Docker拉取JDK21鏡像超細詳解
這篇文章主要介紹了如何在Linux系統(tǒng)上使用Docker拉取JDK21鏡像,并基于該鏡像搭建開發(fā)和測試環(huán)境,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下2024-12-12
詳解Java中實現(xiàn)SHA1與MD5加密算法的基本方法
這篇文章主要介紹了詳解Java中實現(xiàn)SHA1與MD5加密算法的基本方法,安全哈希算法第一版和消息摘要算法第五版也是通常人們最常用的加密算法,需要的朋友可以參考下2016-04-04
基于springMvc+hibernate的web application的構(gòu)建
下面小編就為大家?guī)硪黄趕pringMvc+hibernate的web application的構(gòu)建。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-10-10
Java代碼規(guī)范與質(zhì)量檢測插件SonarLint的使用
本文主要介紹了Java代碼規(guī)范與質(zhì)量檢測插件SonarLint的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08

