JSON이 있습니다.
{
"Data": {
"$id": "1",
"voters": {
"$id": "2",
"$values": [
{
"$id": "3",
"voterStatus": 0,
"voterStatusName": "Active",
"statusReasonName": "Registered",
"voterTypeName": "Regular"
}
]
}
},
"Success": true,
"ErrorMessage": null,
"WarningMessage": null
}
나는 voterStatus의 가치를 원합니다. 이것을 시도했지만 .Data.voters.$values[0].voterStatus
다음과 같은 오류가 발생합니다.
$ jq </tmp/Voter.json '.Data.voters.$values[0].voterStatus'
jq: error: syntax error, unexpected '$', expecting FORMAT or QQSTRING_START (Unix shell quoting issues?) at <top-level>, line 1: .Data.voters.$values[0].voterStatus
jq: 1 compile error
$
voterStatus의 값을 얻으려면 어떤 표현식을 사용해야 합니까?
.Data.$id
값 (위 예에서는 "1") 을 어떻게 얻나요 ?
감사합니다!
답변1
~에서개체 식별자 인덱스: .foo, .foo.barjq 매뉴얼에서:
키에 특수 문자가 포함되어 있거나 숫자로 시작하는 경우 ."foo$" 또는 .["foo$"]와 같이 큰따옴표로 묶어야 합니다.
예를 들어 .["foo::bar"] 및 .["foo.bar"]는 유효하지만 .foo::bar는 유효하지 않습니다.
그래서:
$ jq '.Data.voters."$values"[0].voterStatus' file.json
0
그리고
$ jq '.Data."$id"' file.json
"1"