これは信じられないほど単純なはずですが、manページは私には意味がありません。 curl example.com/json
私に
{
"stats": {
"storage_server.disk_total": XXXXXXXXXX
},
"counters": {}
}
そして、disk_totalの値XXXXXXXXXX
を抽出したいと思います。これを行うための構文は何ですか?
.keyname
速記は使用できません。だからあなたは書くことができます: .stats["storage_server.disk_total"]
または、jqで許可されている場合:
.stats."storage_server.disk_total"
これらは両方とも次の略語です。
.stats | .["storage_server.disk_total"]
キーによってdeeplyネストされた値を取得するには:
$ jq '.. |."storage_server.disk_total"? | select(. != null)'
..
はゼロ引数のショートカットですrecurse
-XPathのアナログ//
演算子。
`storage_server.disk_total"のドットは、オブジェクトキーセパレータとして解釈されないようにエスケープする必要があります。次のように使用できます。
jq '.stats."storage_server.disk_total"'
XXXXXXXXXX
が実際のJSONで有効なJSON番号であると仮定します。