【发布时间】:2018-12-21 00:45:36
【问题描述】:
我有一个输入的 JSON 文档,格式大致如下(实际数据有额外的键,应该不加修改地传递;空格已为人类可读性进行了调整,并且不希望保留它):
{
"Rules": [
{"Filter": { "Prefix": "to_me/" }, "Status": "Enabled" },
{"Filter": { "Prefix": "from_me/" }, "Status": "Enabled" },
{"Filter": { "Prefix": "__bg/" }, "Status": "Enabled" }
]
}
我需要匹配.Rules[].Filter.Prefix=="to_me/",然后将关联的"Status": "Enabled" 更改为"Disabled"。由于只有上面的第一条规则具有 to_me/ 前缀,因此该规则的状态将更改为 Disabled,正确输出如下所示:
{
"Rules": [
{"Filter": { "Prefix": "to_me/" }, "Status": "Disabled" },
{"Filter": { "Prefix": "from_me/" }, "Status": "Enabled" },
{"Filter": { "Prefix": "__bg/" }, "Status": "Enabled" }
]
}
我尝试了几种不同的组合,但似乎无法正确。
有人有想法吗?
【问题讨论】:
-
显示您尝试过的内容通常很有帮助 - 属于“显示您的工作”,因此我们知道对为什么答案有效的解释需要包含哪些上下文,以及什么你已经知道了。
-
另外,一个好的minimal reproducible example 使样本数据尽可能短——如果
Expiration和ID不受逻辑影响,f/e,最好将其取出。保持样本数据简短,可以让人们更轻松地进行可视化扫描和比较,这意味着您可以在实际输入的同时包含所需的输出和实际输出,而不会让问题变得太长。 -
(...我已根据上述内容编辑了问题)。
标签: json jq inplace-editing