2016-07-21 4 views
1

나는 당신이 JQ 구문을 사용하여 다음과 같은 페이로드</p> <pre><code>ProductCostingBJF_v2.3.0 true master true </code></pre> <p>존재하는 JSON을 꺼내

[ 
    { 
    "name": "ProductCostingBJF_v2.3.0", 
    "commit": { 
    }, 
    "protection": { 
     "enabled": true, 
     "required_status_checks": { 
     "enforcement_level": "off", 
     "contexts": [] 
     } 
    } 
    }, 
    { 
    "name": "master", 
    "commit": { 
    }, 
    "protection": { 
     "enabled": true, 
     "required_status_checks": { 
     "enforcement_level": "off", 
     "contexts": [] 
     } 
    } 
    } 
] 

도움을 줄 수있는 페이로드에서 여러 필드를 추출 나는 나는 ... 첫 번째 부분을 가지고

jq -r .[].name 

으로 지점 이름을 얻을 수 있지만 사용 가능한 값을 가져 오는 방법을 알 수 없습니다.

+0

[] 이름

jq -r '.[]| "\(.name) \(.protection.enabled)"' a.json 

당신은 파이프 그것을 column에 수 출력 정렬하세요 ,. []. protection.enabled 이런 식으로? – Bram

답변

1

다음과 같은 JQ 명령을 사용할 수 있습니다

jq -r '.[]| "\(.name) \(.protection.enabled)"' a.json | column -t 

출력 : :..

ProductCostingBJF_v2.3.0 true 
master     true 
+1

대신 문자열 보간법을 사용하십시오 :' "\ (.name) \ (. protection.enabled)"' –

+0

'tostring'을 명시 적으로 수행 할 필요가 없기 때문에 더 좋습니다. 나는 그 결과로 지금부터 사용할 것입니다! 힌트를 가져 주셔서 감사합니다! – hek2mgl

+1

답변에 대한 정보 - 크게 감사 드리며 온 라인을 이용하는 방법에 대한 힌트는 매우 도움이되었습니다. –

관련 문제