gpt4 book ai didi

java - 如何从 JSON 中删除任何类型的 Key

转载 作者:行者123 更新时间:2023-12-02 10:20:55 25 4
gpt4 key购买 nike

这是我的 JSON 的一部分:

{
"expressions": {
"storyId": "doesNotMatter"
},
"facts": { }
}

我希望从 JSON 中删除键“storyId”。如何通过将 JSON 转换为字符串并使用正则表达式来做到这一点?

删除不需要的文本后,我的 JSON 应该像这样:

{
"expressions": {
},
"facts": { }
}

注意:我看不到原始 JSON,也不知道包装器元素是谁或是什么。

最佳答案

我不建议使用正则表达式来做这样的事情,更好的选择是使用一个库来解析 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, "");
}

关于java - 如何从 JSON 中删除任何类型的 Key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54347442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com