【发布时间】:2020-06-09 18:13:39
【问题描述】:
我有一个输入文件:
{
"errands": [
{
"name": "broker-deregistrar",
"label": "Deregister and Purge Instances",
"impact_warning": null,
"pre_delete": true
},
{
"name": "delete-all-service-instances",
"label": "Delete All Service Instances",
"impact_warning": null,
"pre_delete": true
},
{
"name": "deregister-broker",
"label": "Deregister On-Demand Service Broker",
"impact_warning": null,
"pre_delete": true
}
]
}
我想重新格式化它以使.name 的值成为具有固定值的键,如下所示:
{
"deploy_products": "all",
"errands": {
"product_1_guid": {
"run_pre_delete": {
"broker-deregistrar": true,
"delete-all-service-instances": true,
"deregister-broker": true
}
}
},
"ignore_warnings": true
}
我可以使用这个过滤器对我想要的值进行子集化:
.errands[].name
这给了我:
"broker-deregistrar"
"delete-all-service-instances"
"deregister-broker"
但我想将选定的值作为键获取到新的 JSON 中。
虽然这种方法有效,
.errands=(.product_1_guid=(.run_pre_delete=(.xxx=true | .yyy=true | .zzz=true)))
差事名称列表是可变的,因为它们具有不同的名称和计数。即,差事列表可能只是“删除应用程序”,甚至什么都没有。
在上面的示例中,我需要 .xxx、.yyy 和 .zzz 来自原始 JSON。
【问题讨论】: