当前位置: 首页 > 知识库问答 >
问题:

如何从JSON中删除任何类型的键

宦砚
2023-03-14
{
"expressions": {
    "storyId": "doesNotMatter"
},
"facts": { }
}
{
"expressions": {       
},
"facts": { }
}

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

共有1个答案

庾兴发
2023-03-14

我不建议使用regex进行这种操作,更好的选择是使用解析json的库,删除值,然后再次将其转换为字符串。

    JSONObject jsonObject = new JSONObject(input);
    jsonObject.getJSONObject("expressions").remove("storyId");
    String output = jsonObject.toString();

如果您真的想使用regex,可以使用以下命令

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

但是只要确保storyId确实是一个字符串,否则这个regex就不能工作了。

void replaceAllKeys(String keyName, String jsonAsString) {
    String pattern = String.format("(\\\"%s\\\"|\\'%s\\')\\s*:\\s*(\\\"[^\\\"]*\\\"|'[^\\\"]*')\\s*,?", keyName, keyName);
    return jsonAsString.replaceAll(pattern, "");
}
 类似资料:
  • 问题内容: 我有一个时间周期性地与一些不同的任务; 我也有Runnable与此计划程序一起使用的不同之处。当我想从调度程序中删除任务之一时,问题就开始了。 有没有办法做到这一点? 我可以使用一个调度程序完成不同的任务吗?实现此目的的最佳方法是什么? 问题答案: 只需取消以下项返回的未来: 要注意的另一件事是,取消不会从计划程序中删除任务。它所确保的是isDone方法总是返回true。如果继续添加此

  • 我的代码中有以下对象。 如何最好地删除所有“地址”字段?因此,我得出以下结果。我一直在努力寻找这个基本问题的答案。

  • 问题内容: 我有一个像这样的json字符串: 我想将上述字符串转换为JSONObject,以便可以执行以下操作: 这样我就可以轻松打印出以下内容的json字符串: 对我来说最简单的方法是什么? 问题答案: org-json-java可以做你想要的事情 执行结果是 在运行上述代码之前,请确保已从此处下载并导入了org.json-YYYYMMDD.jar 。

  • 问题内容: 我的意思不是删除一个或多个文件。我的意思是完全删除该模型,以便猫鼬不再意识到它。声明模型后,我不知道如何使猫鼬忘记该模型,以便可以重新创建它。 目前,上面引发了一个异常。 OverwriteModelError:编译后无法覆盖“ Book”模型。 我希望能够做这样的事情… …并且没有任何错误。有任何想法吗? 问题答案: 试试这个 然后重新注册/重新初始化它。它将正常工作

  • 问题内容: 我有一个像下面这样的json字符串 我想从字符串中删除/删除第一个和最后一个方括号。所以我将如何使用JavaScript从上述字符串中删除第一个和最后一个方括号。 请帮我 问题答案: 请参阅此Codepen示例

  • 问题内容: 我创建具有指定文档类型“ mytype”的索引“ myindex”。我可以删除索引,但是似乎“ mytype”仍然存在而没有与索引绑定。 如何摆脱“ mytype”? 问题答案: 如果您确实删除了索引,则该索引中的映射将不再存在。集群中是否还有其他具有相似类型名称的索引? 要回答问题:,请使用Delete Mapping API : 编辑 :从elasticsearch 2.0,将不再