![](/img/trans.png)
[英]Add new element to existing JSON Object with jq when transforming the JSON
[英]jq create a new json by transforming an existing one
{
"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中獲取以下輸出? (這里的鍵是serials數組的每個元素,而值是第一個示例json的鍵):
{
"028915" : ["prodid_876006"],
"192147" : ["prodid_980"],
"1632589" : ["prodid_980"]
}
這樣的事情將起作用,您可以在其中提取鍵值對數組並將其管道傳遞給from_entries
:
% jq '[to_entries[] | {"key": .key, "value": .value.serials}] | from_entries' 42762941.json
{
"prodid_876006": [
"028915"
],
"prodid_980": [
"192147",
"1632589"
]
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.