(맥 OS, 쉘) :나는 같은 JSON 문자열을 가지고
{
"id": 3397,
"title": "title_1"
}
{
"id": 3396,
"title": "title_2"
}
제가하고 싶은 것은, 루프에서 나는 다음과 같은 코드를 사용 을 모든 id
을 얻을 수 있습니다 :
for ((i = 0; i < requestCount; i++)); do
requestId=$(echo $jsonString[$i] | jq '.id')
echo requestId;
done
하지만이 작동하지 않습니다, 나는 내가 변수가 잘못 사용하는 방법은, 내가 여기 jq 유용한 아무것도 찾을 수 있다고 생각합니다.
, 예컨대을 추하고 비효율적 그것은 당신이 입력 어떤 형태로 분명하지 않다. 'jsonString'은 객체 당 하나의 JSON 요소를 가진 실제 쉘 배열입니까? 'jq'는 이미 자체적으로 반복 할 수 있으므로'[{...}, {...} '와 같은 적절한 JSON 배열이 있다면'echo "$ json"| jq '.id' '. – chepner
당신이 옳다면 나는 모든 id를 간단하게 출력하고 싶습니다. 하지만이 루프의 다음 명령에서 모든 ID를 사용해야합니다. –