你好,提前感谢
所以我有以下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
键处的对象合并。
[]
的最外层包装只是从流中创建一个数组。