Json
使用 jq 獲取給定鍵及其父項的值
我有一個像這樣的 JSON 對象:
{ "1": { "available_memory": 1086419656.0, "available_memory_no_overbooking": 1086419656.0, "conns": 1.0 }, "2": { "available_memory": 108641236.0, "available_memory_no_overbooking": 10861216.0, "conns": 2.0 } }
我想為每個對象 id 檢索“conns”屬性的值。我是 jq 的新手,我找不到明確的例子。
我嘗試了以下方法:
echo "$OUTPUT" | jq -r .[].conns
它返回 conns 的所有值,但這不是我需要的。預期的輸出將是:
1 1.0 2 2.0
有任何想法嗎?
$ jq -r 'keys[] as $k | "\($k) \(.[$k].conns)"' file.json 1 1 2 2
似乎 jq 將 1.0 轉換為 1,將 2.0 轉換為 2。為了清楚起見,更改輸入:
$ cat file.json { "1a": { "available_memory": 1086419656.0, "available_memory_no_overbooking": 1086419656.0, "conns": 1.1 }, "2b": { "available_memory": 108641236.0, "available_memory_no_overbooking": 10861216.0, "conns": 2.2 } } $ jq -r 'keys[] as $k | "\($k) \(.[$k].conns)"' file.json 1a 1.1 2b 2.2
參考: