【发布时间】:2017-04-11 04:55:15
【问题描述】:
我有一个相当复杂的 JSON 数据结构,我已经设法使用 jq 过滤到某些键及其值。我需要合并结果,所以重复的键只有一个值数组。
例如
{
"1.NBT.B": [
{
"id": 545
},
{
"id": 546
}
]
},
{
"1.NBT.B": [
{
"id": 1281
},
{
"id": 1077
}
]
}
会导致
{
"1.NBT.B": [
{
"id": 545
},
{
"id": 546
},
{
"id": 1281
},
{
"id": 1077
}
]
},
...
甚至更好:
[{"1.NBT.B": [545, 546, 1281, 1077]}, ...]
我需要这样做,而不必直接输入密钥(“1.NBT.B”),因为有数百个这样的密钥。我认为最让我困惑的是这里的对象没有命名——对象之间的键不一样。
这样的事情只会给我第二组 id,完成跳过第一组:
reduce .[] as $item ({}; . + $item)
【问题讨论】: