假设我返回了这样的 json:
export json_string='{
"summary": "1 failure",
"checks": [
{
"id": "check1",
"status": "OK"
},
{
"id": "check2",
"status": "FAILED"
},
{
"id": "check3",
"status": "CONFIG_WARNING"
}
]
}'
如何获取已返回的摘要和未返回的支票?我可以通过以下方式获取未返回的支票:
echo "$json_string" | jq '.checks | .[] | select(.status != "OK")'
但我真的很想获得摘要和失败的检查,或者如果没有失败,则只获得摘要。
更新 被接受的答案为我指明了正确的方向。这是我最终用来按我想要的方式格式化输出的命令:
echo "$json_string" | jq '{"summary": .summary, "checks":[.checks[] | select(.status != "OK")]}'