我有一些JSON输入,如下所示:
{
"name1":{
"type1":1,
"type2":2
},
"name2":{
"type2":3,
"type3":4
}
}
我想使用jq将其转换为类似的内容:
[
{
"name":"name1",
"count":[
{
"type":"type1"
"number":1
},
{
"type":"type2"
"number":2
}
]
},
{
"name":"name2",
"count":[
{
"type":"type2"
"number":3
},
{
"type":"type3"
"number":4
}
]
}
]
不确定是否可以这样做?
答案 0 :(得分:2)
过滤器不是很优雅,但是可以满足您的需求。您所需要做的只是一个嵌套的to_entries[]
转换,并在其之上构建JSON。
jq '[ to_entries[] |
{ "name": .key,
"count": [ .value | to_entries[] | { "type": .key, "number": .value } ]
}
]' json
jq-play相同的代码段。