最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用java生成json時(shí)產(chǎn)生棧溢出錯(cuò)誤問(wèn)題及解決方案

 更新時(shí)間:2022年06月13日 09:17:28   作者:我是干勾魚  
這篇文章主要介紹了使用java生成json時(shí)產(chǎn)生棧溢出錯(cuò)誤問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

java生成json時(shí)產(chǎn)生棧溢出錯(cuò)誤

環(huán)境

java + hibernate +html

本來(lái),java中使用json事件很正常的事,但小心有的地方有點(diǎn)“坎兒”。

比如,在java中建立了json對(duì)象想傳到前臺(tái)去:

List<Comment> commentsList = commentMng.findByArticleId(articleid);
JSONArray jsonMembers = new JSONArray(commentsList);
...

注意這里,得到了一個(gè)關(guān)于Comment的list數(shù)組commentsList。如果Comment類型中的成員變量,都是普通的成員變量,那么ok,這么操作沒問(wèn)題。

如果Comment類型的表中包含外鍵,而Comment本身又與該外鍵對(duì)應(yīng)的變量是多對(duì)一的關(guān)系,比如Comment中有個(gè)Article字段,多個(gè)Comment變量可以對(duì)應(yīng)一個(gè)Article變量。

那么在這種情況下:

JSONArray jsonMembers = new JSONArray(commentsList);

這里會(huì)出現(xiàn)棧溢出錯(cuò)誤

java.lang.StackOverflowError

在這種情況下,解決的辦法就是將原有的List類型的list分解,也就是將commentsList分解,單獨(dú)將變量傳進(jìn)JSONArray:

JSONArray jsonMembers = new JSONArray();
for ( Comment comment : commentsList) {
? ? JSONObject jsonObject = new JSONObject();
? ? jsonObject.put("id", blogComment.getId());
? ? ...
? ? ...
? ? jsonMembers.put(jsonObject);
}

當(dāng)然那個(gè)多對(duì)一的字段信息如果想傳遞進(jìn)去,也是不能直接將Comment類型的變量放到j(luò)sonObject里面的,而是需要字符串化,總之專遞的盡量是字符串信息。

json轉(zhuǎn)換時(shí)出現(xiàn)棧內(nèi)存溢出

加上注解忽略這個(gè)字段,最好兩個(gè)同時(shí)加

  • jsonignore是jackson包下的
  • jsonfield是fastjson包下的

有時(shí)候分不清就同時(shí)加上注解,以防萬(wàn)一

這個(gè)問(wèn)題應(yīng)該是我jpa一對(duì)多的問(wèn)題(趕快記錄一下)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • IDEA使用學(xué)生郵箱無(wú)法注冊(cè)問(wèn)題:JetBrains Account connection error: 拒絕連接

    IDEA使用學(xué)生郵箱無(wú)法注冊(cè)問(wèn)題:JetBrains Account connection error: 拒絕連接

    這篇文章主要介紹了IDEA使用學(xué)生郵箱無(wú)法注冊(cè)問(wèn)題:JetBrains Account connection error: 拒絕連接,文中通過(guò)圖文及示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • RocketMQ的順序消費(fèi)機(jī)制詳解

    RocketMQ的順序消費(fèi)機(jī)制詳解

    這篇文章主要介紹了RocketMQ的順序消費(fèi)機(jī)制詳解,順序消息是指對(duì)于一個(gè)指定的?Topic?,消息嚴(yán)格按照先進(jìn)先出(FIFO)的原則進(jìn)行消息發(fā)布和消費(fèi),即先發(fā)布的消息先消費(fèi),后發(fā)布的消息后消費(fèi),,需要的朋友可以參考下
    2023-10-10
  • 利用Java查看進(jìn)程內(nèi)存占用情況的實(shí)現(xiàn)方法

    利用Java查看進(jìn)程內(nèi)存占用情況的實(shí)現(xiàn)方法

    在系統(tǒng)監(jiān)控和性能調(diào)優(yōu)中,了解各個(gè)進(jìn)程的內(nèi)存占用情況是非常重要的一環(huán),通過(guò)查看進(jìn)程內(nèi)存使用情況,開發(fā)者和運(yùn)維人員可以及時(shí)發(fā)現(xiàn)異常進(jìn)程、資源瓶頸和內(nèi)存泄漏問(wèn)題,本項(xiàng)目旨在使用 Java 編寫一個(gè)簡(jiǎn)單的程序,通過(guò)調(diào)用操作系統(tǒng)的命令來(lái)獲取系統(tǒng)中各個(gè)進(jìn)程的內(nèi)存使用情況
    2025-03-03
  • Spring Boot 中啟用定時(shí)任務(wù)的操作方法

    Spring Boot 中啟用定時(shí)任務(wù)的操作方法

    文章主要介紹了如何在Spring Boot中啟用定時(shí)任務(wù),包括使用@EnableScheduling注解、配置項(xiàng)控制定時(shí)任務(wù)是否開啟以及如何關(guān)閉cron定時(shí)任務(wù),感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Flink時(shí)間和窗口邏輯處理源碼分析

    Flink時(shí)間和窗口邏輯處理源碼分析

    這篇文章主要為大家介紹了Flink時(shí)間和窗口邏輯處理源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • java實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)單鏈表示例(java單鏈表)

    java實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)單鏈表示例(java單鏈表)

    這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)單鏈表示例,需要的朋友可以參考下
    2014-03-03
  • Java Lambda List轉(zhuǎn)Map代碼實(shí)例

    Java Lambda List轉(zhuǎn)Map代碼實(shí)例

    這篇文章主要介紹了Java Lambda List轉(zhuǎn)Map代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 帶你走進(jìn)Maven的大門-最全Maven配置及集成idea工具總結(jié)

    帶你走進(jìn)Maven的大門-最全Maven配置及集成idea工具總結(jié)

    Maven項(xiàng)目對(duì)象模型(POM),是一個(gè)項(xiàng)目管理工具可以通過(guò)一小段描述信息來(lái)管理項(xiàng)目的構(gòu)建,報(bào)告和文檔的軟件.那我們想要在IDEA中使用Maven得進(jìn)行一些配置,接下來(lái)我們具體看一下是如何配置使用的,需要的朋友可以參考下
    2021-06-06
  • Delegate IDE build/run actions to maven 配置會(huì)影響程序運(yùn)行嗎?

    Delegate IDE build/run actions to maven 配置會(huì)影響程序運(yùn)行嗎?

    這篇文章主要介紹了Delegate IDE build/run actions to maven 配置會(huì)影響程序運(yùn)行嗎,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 淺談Java線程Thread.join方法解析

    淺談Java線程Thread.join方法解析

    本篇文章主要介紹了淺談Java線程Thread.join方法解析,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01

最新評(píng)論

锦屏县| 湟中县| 佛教| 蓬安县| 沅江市| 冷水江市| 华亭县| 类乌齐县| 炎陵县| 建湖县| 青岛市| 玛沁县| 永靖县| 伽师县| 巴彦淖尔市| 托克逊县| 黑河市| 绥棱县| 陆良县| 丽江市| 宜良县| 余江县| 英德市| 贵南县| 临沂市| 邯郸县| 镇原县| 铁岭县| 桃园市| 高唐县| 陆丰市| 循化| 基隆市| 德州市| 石棉县| 鄂伦春自治旗| 闸北区| 合山市| 厦门市| 湖口县| 神农架林区|