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