簡體   English   中英

jq通過轉換現有的json創建一個新的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM