{
"prodid_876006": {
"serid": [{
"seridone": "3265874"
}, {
"seridtwo": "21458915"
}],
"serials": ["028915"]
},
"prodid_980": {
"serid": [{
"seridone": "32743214"
}, {
"seridtwo": "5469872"
}],
"serials": ["192147","1632589"]
}
}
期望的输出: 对于每个json对象,提取prodid_ info和serials数组,并使用以下格式创建一个新的json文件:
{
"prodid_876006" : ["028915"],
"prodid_980" : ["192147","1632589"]
}
这是什么jq命令?
keys ,.[].serials
给我以下内容:
[
"prodid_876006",
"prodid_980"
]
[
"028915"
]
[
"192147",
"1632589"
]
更新问题:
我怎么能进入另一个json以下输出? (这里的键是序列数组的每个元素,值是第一个样本json的键):
{
"028915" : ["prodid_876006"],
"192147" : ["prodid_980"],
"1632589" : ["prodid_980"]
}
答案 0 :(得分:2)
这样的东西可行,你可以提取一组键值对并输送到from_entries
:
% jq '[to_entries[] | {"key": .key, "value": .value.serials}] | from_entries' 42762941.json
{
"prodid_876006": [
"028915"
],
"prodid_980": [
"192147",
"1632589"
]
}