【发布时间】:2020-12-12 01:52:26
【问题描述】:
假设我有一个这样的 JSON 数组:
[
{
"name": "alpha",
"value": 1
},
{
"name": "beta",
"value": 2
},
...
]
(它包含大约 50-100 个项目;这是一个简化的示例。)
我想像这样从中生成一个 JSON 对象:
{
"alpha": 1,
"beta" 2,
...
}
我认为它的 jq 过滤器看起来像这样:
.[] | {
"alpha": select(.name == "alpha") | .value,
"beta": select(.name == "beta") | .value,
...
}
当我在https://jqplay.org/s/SOKd4oCh2k 上尝试时,这实际上不起作用,但我认为它非常接近。
好的,现在是棘手的部分:有时带有"name": "alpha"(或"name": "beta" 等)的对象实际上不会存在于输入数组中!在这种情况下,我想打印"alpha": null 或"alpha": ""。但我不知道如何将其集成到我的select() 电话中。
实际上,我需要它从批处理调度系统中抓取作业指标,在运行性能测试时我会随着时间的推移更改指标,因此对于特定作业运行,我查询的任何给定指标可能不存在,但我仍然想查看该作业运行的所有其他指标。
【问题讨论】:
标签: json select jq default key-value