亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從 JSON 中刪除任何類型的密鑰

如何從 JSON 中刪除任何類型的密鑰

萬千封印 2022-05-21 13:53:24
這是我的 JSON 的一部分:{"expressions": {    "storyId": "doesNotMatter"},"facts": { }}我希望從我的 JSON 中刪除密鑰“storyId”。如何通過將我的 JSON 轉換為字符串并使用正則表達式來做到這一點?刪除不需要的文本后,我的 JSON 應該是這樣的:{"expressions": {       },"facts": { }}注意:我沒有看到我的原始 JSON,也不知道包裝器元素是誰或什么。
查看完整描述

2 回答

?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

我不建議使用正則表達式,更好的選擇是使用庫來解析 json,刪除值,然后再次將其轉換為字符串。


    JSONObject jsonObject = new JSONObject(input);

    jsonObject.getJSONObject("expressions").remove("storyId");

    String output = jsonObject.toString();

如果你真的想使用正則表達式,你可以使用以下


    jsonString.replaceAll("(\\\"storyId\\\"|\\'storyId\\')\\s*:\\s*(\\\"[^\\\"]*\\\"|'[^\\\"]*')\\s*,?", "");

但只要確保 storyId 真的是一個字符串,否則這個正則表達式將不起作用。


編輯:更新了我的答案,如果你想要一個使用正則表達式刪除參數的函數,


void replaceAllKeys(String keyName, String jsonAsString) {

    String pattern = String.format("(\\\"%s\\\"|\\'%s\\')\\s*:\\s*(\\\"[^\\\"]*\\\"|'[^\\\"]*')\\s*,?", keyName, keyName);

    return jsonAsString.replaceAll(pattern, "");

}


查看完整回答
反對 回復 2022-05-21
?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

首先,我假設您將獲取所有 json 對象,jsonObj然后remove()通過傳遞您的 json 鍵來調用,如下所示:

jsonObj.getAsJsonObject("expressions").remove("storyId");


查看完整回答
反對 回復 2022-05-21
  • 2 回答
  • 0 關注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號