我想要“转置”(不确定这是否是正确的词)JSON元素。
例如,我有一个像这样的JSON文件:
...并且我想生成这样的JSON数组:
我的原始JSON有很多比“name”和“loudness”更多的一级元素,也有更多的名称、特性等。
对于这个简单的例子,我可以完全指定转换如下:
"...但对于原始的JSON数据来说,这是不可行的。
在我的更大的JSON文件中,如何使用jq创建所需的输出而又不依赖于关键字?"
例如,我有一个像这样的JSON文件:
{
"name": {
"0": "fred",
"1": "barney"
},
"loudness": {
"0": "extreme",
"1": "not so loud"
}
}
...并且我想生成这样的JSON数组:
[
{
"name": "fred",
"loudness": "extreme"
},
{
"name": "barney",
"loudness": "not so loud"
}
]
我的原始JSON有很多比“name”和“loudness”更多的一级元素,也有更多的名称、特性等。
对于这个简单的例子,我可以完全指定转换如下:
$ echo '{"name":{"0":"fred","1":"barney"},"loudness":{"0":"extreme","1":"not so loud"}}'| \
> jq '[{"name":.name."0", "loudness":.loudness."0"},{"name":.name."1", "loudness":.loudness."1"}]'
[
{
"name": "fred",
"loudness": "extreme"
},
{
"name": "barney",
"loudness": "not so loud"
}
]
"...但对于原始的JSON数据来说,这是不可行的。
在我的更大的JSON文件中,如何使用jq创建所需的输出而又不依赖于关键字?"
with_entries(.key = $keys[.key])
简化objectify
函数怎么样? - luciole75w