2017-03-26 6 views
0

일부 JSON 출력이 있습니다. jq를 구문 분석하려고합니다. 필자는 필터링에 대한 몇 가지 예를 읽었지만 실제 결과를 이해하지 못하고 예제보다 더 복잡합니다. jq '.[]'을 넘어서서 어디에서부터 시작해야할지 모르겠다. jq의 구문을 이해할 수 없으며, 계층 구조와 용어도 어렵다. 내 JSON 출력은 아래와 같습니다. ItemNameItem_2 인 곳에 Valid 값을 반환하고 싶습니다. 어떻게해야합니까? 초기 및 후행 JSON 스칼라 제외다른 요소에 특정 값이있는 요소의 값을 반환하려면 jq와 JSON을 구문 분석하십시오.

"1" 
[ 
    { 
    "GroupId": "1569", 
    "Title": "My_title", 
    "Logo": "logo.jpg", 
    "Tags": [ 
     "tag1", 
     "tag2", 
     "tag3"  
    ], 
    "Owner": [ 
     { 
     "Name": "John Doe", 
     "Id": "53335" 
     } 
    ], 
    "ItemId": "209766", 
    "Item": [ 
     { 
     "Id": 47744, 
     "ItemName": "Item_1", 
     "Valid": false 
     }, 
     { 
     "Id": 47872, 
     "ItemName": "Item_2", 
     "Valid": true 
     }, 
     { 
     "Id": 47872, 
     "ItemName": "Item_3", 
     "Valid": false 
     } 
    ] 
    } 
] 
"Browse" 
"8fj9438jgge9hdfv0jj0en34ijnd9nnf" 
"v9er84n9ogjuwheofn9gerinneorheoj" 

답변

1

, 당신은 단순히 쓸 것 :

.[] | .Item[] | select(.ItemName == "Item_2") | .Valid 

을 특정 경우, JSON 스칼라는 무시됩니다 최상위 수준을 보장하기 위해, 위의 접두사 수 다음을 포함합니다 :

arrays | 
+0

감사합니다. – user2328273