使用jq如何将密钥添加到现有的JSON数据结构中



你好,提前感谢

所以我有以下JSON:

{
"key1" : { 
"someKey": "someValue"
},
"key2" : { 
"someKey": "someValue"
}
}

我想要的输出是:

[
{ 
"someKey": "someValue",
"$key" : "key1"
},
{ 
"someKey": "someValue",
"$key" : "key2"
}
]

因此,基本上,我需要使用jq将"key"作为键对象值中的一个单独属性附加到该值。

我已经知道如何将值转换为数组,但我不知道如何将"$键";到对象。

请帮忙。谢谢

我使用以下命令找到了解决方案:

[ to_entries[] | {"$key": .key} * .value ]

这是怎么回事?

to_entries[]输出

{
"key": "key1",
"value": {
"someKey": "someValue"
}
}
{
"key": "key2",
"value": {
"someKey": "someValue"
}
}

然后,它使用"|"对该输出进行管道传输,管道传输后创建一个对象

{"$key": .key}

然后,使用*运算符,它将这个新对象与to_entries[]输出的每个对象中位于.value键处的对象合并。

[]的最外层包装只是从流中创建一个数组。

最新更新