第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

使用 Jackson 在 JSON 中插入和刪除內(nèi)部節(jié)點(diǎn)?

使用 Jackson 在 JSON 中插入和刪除內(nèi)部節(jié)點(diǎn)?

largeQ 2023-07-13 14:36:46
我有一個(gè)復(fù)雜的 json 和一個(gè)鍵列表,它們代表到我想要訪問、刪除或插入的特定節(jié)點(diǎn)的任意長(zhǎng)“路徑”。那可能嗎?例如對(duì)于 json{  "token": {    "d1": 3000,    "d2": [      {        "d3": "a1",        "d4": "a2"      }    ],    "d5": [      "d6",      "d7"    ],  "d8": {    "d9": true,    "d10": 10000  }}和清單['token','d2','d3']對(duì)于插入命令,結(jié)果為removeFromJson(jsonString,key_path)將會(huì){  "token": {    "d1": 3000,    "d2": [      {        "d4": "a2"      }    ],    "d5": [      "d6",      "d7"    ],  "d8": {    "d9": true,    "d10": 10000  }}
查看完整描述

1 回答

?
婷婷同學(xué)_

TA貢獻(xiàn)1844條經(jīng)驗(yàn) 獲得超8個(gè)贊

JsonNode正如托馬斯在評(píng)論中提到的那樣,我會(huì)依靠它get和remove方法。就像是:


public void remove(String json, List<String> path) {


    JsonNode root = new ObjectMapper.readTree(json);


    int lastIndex = path.size() - 1;


    for (int i = 0; i < lastIndex; i++) {

        root = root.get(path.get(i));

    }


    root = root.remove(path.get(lastIndex));


    return root;

}

您可以使用子列表或流進(jìn)一步優(yōu)化迭代,并且您可能希望處理路徑實(shí)際上并未通向給定 json 中的任何內(nèi)容的情況。


注意:如果您需要在任意對(duì)象內(nèi)的任意路徑上執(zhí)行此行為,則此選項(xiàng)有效 -JsonNode非常適合您不知道會(huì)得到什么的情況。如果你確實(shí)知道你會(huì)得到什么(從同一個(gè)對(duì)象中刪除的總是相同的東西),那么使用映射器集將 JSON 反序列化為對(duì)象可能是更好的形式,以忽略對(duì)象中缺少但存在于中的字段JSON。


查看完整回答
反對(duì) 回復(fù) 2023-07-13
  • 1 回答
  • 0 關(guān)注
  • 297 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)