次のようなJSON出力があります。
{
"example": {
"sub-example": [
{
"name": "123-345",
"tag" : 100
},
{
"name": "234-456",
"tag" : 100
},
{
"name": "4a7-a07a5",
"tag" : 100
}
]
}
}
3つの「名前」フィールドの値を抽出し、3つの変数に格納したい。
私は試した cat json_file | jq '.["example.sub-example.name"]'
「名前」フィールドの値を抽出しますが、それは機能しません。
Jq(または他の方法)を使用してこれを達成する方法を教えてもらえますか?
name
フィールドを抽出するだけの場合、探しているコマンドはjq '.example."sub-example" | .[] | .name'
。名前を配列に保持する場合は、jq
式全体を角括弧で囲みます。
Jq 1.3では、フィルターを使用できます。
.example["sub-example"] | .[] | .name
またはよりコンパクトに:
.example["sub-example"][].name
もちろん、これらはjqの以降のバージョンでも動作します。