2016-07-21 192 views
1

我有以下的有效載荷從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語法幫助拉出來,目前

ProductCostingBJF_v2.3.0 true 
master      true 

提取多個字段我得到的第一部分......我可以得到分支名稱與

jq -r .[].name 

但我不知道如何獲得啓用值。

+0

[]名,。[]。protection.enabled是這樣的嗎? – Bram

回答

1

您可以使用下面的JQ命令:

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

可以通過管道將它column獲得一致的輸出:

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

輸出:。

ProductCostingBJF_v2.3.0 true 
master     true 
+1

考慮使用字符串插值代替:'「\(。name)\(。protection.enabled)」' –

+0

絕對更好,因爲它不需要顯式運行'tostring'。我從現在開始使用它!感謝提示! – hek2mgl

+1

現貨答覆 - 這是非常讚賞和暗示如何在oneline是非常有幫助 –