我有一个具有以下结构的json文件:
{
"category":
{
"subcategory":
[
{
"id": "1",
"val": "blue",
"foo": "blahblah",
"bar": "blahblah"
},
{
"id": "2",
"val": "red"
"foo": "blahblah",
"bar": "blahblah"
}
]
}
}
我想将其转换为:
{
subcategories
[
{"id": "1","val": "blue"}
{"id": "2","val": "red"}
]
}
我能得到的最接近的是
cat input.json | jq -c '.[] | \
{id: .category.subcategory[].id, \
value: .category.subcategory[].val}' \
> output.json
它不起作用,但是很接近:
subcategories
节点。id
始终是第一个值-IOW 1
任何帮助都会很棒!
谢谢!
答案 0 :(得分:0)
您的输入已经具有所需的数组,因此您的jq程序可以很简单:
{subcategories: .category.subcategory }
或者,如果您只想保留“ id”和“ val”键:
{subcategories: .category.subcategory | map({id,val}) }
如果(和/或何时)选择使用迭代,请确保没有太多的迭代器。