![Bash 속성을 사용하여 jq 배열에 액세스](https://linux55.com/image/133756/Bash%20%EC%86%8D%EC%84%B1%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20jq%20%EB%B0%B0%EC%97%B4%EC%97%90%20%EC%95%A1%EC%84%B8%EC%8A%A4.png)
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