キーを印刷できます:
$ jq -r '.indices | keys[]'
plan
resource
user
サブ値を出力できます:
$ jq '.indices[] | .primaries.docs.count'
14208
1427143
104475
キーとサブ値を印刷するにはどうすればよいですか?
plan: 14208
resource: 1427143
user: 104475
以下が機能する可能性があります。
$ jq -r '.indices | to_entries[] | "\(.key): \(.value.primaries.docs.count)"' input.json
plan: 14208
resource: 1427143
user: 104475
上記は、入力が次のとおりであることを前提としています。
{
"indices": {
"plan": { "primaries": { "docs": { "count": 123 }}},
"resource": { "primaries": { "docs": { "count": 456 }}},
"user": { "primaries": { "docs": { "count": 789 }}}
}
}
to_entries
はオブジェクトindices
を配列に変換します。
[
{ "key": "plan", "value": { ... } },
...,
...
]
その後、簡単にマッピングできます。
キーを直接使用するソリューションは次のとおりです。
.indices
| keys[] as $k
| "\($k): \(.[$k].primaries.docs.count)"