bashプロパティを使用してjson配列にアクセスできますか?
JSONの例:
{
"data": [
{
"id": 1,
"name": "John"
},
{
"id": 2,
"name": "Doe"
},
...
}
Bashの例は次のとおりです。
count=0
id=$(cat example.json | jq -r '.data[$count].id')
答え1
変数をすでに存在するものとして扱う--argjson
オプションを使用します。$cnt
JSON- エンコードされた値:
$ cnt=0
$ jq --argjson cnt "$cnt" '.data[$cnt]' file.json
出力:
{
"id": 1,
"name": "John"
}
--argjson name JSON-text
:このオプションは、JSONでエンコードされた値を事前定義された変数としてjqプログラムに渡します。次のようにjqを実行する
--argjson foo 123
と、$foo
123
答え2
使用二重引用符変数の補間を許可するには、単一の代わりに:
jq -r ".data[$count].id" example.json