jq从数组中选择值

时间:2016-06-01 08:45:45

标签: json jq

我有以下带有示例值的JSON文件:

{
    "files": [{
        "fileName": "FOO",
        "md5": "blablabla"
    }, {
        "fileName": "BAR",
        "md5": "alaldlafj"
    }]
}

现在我想要的是返回md5值,例如fileName是“FOO”。为此,我在jq中有以下声明:

cat <file>.json | jq '.[] | select(.fileName=="FOO")' 

然而回复是:jq: error (at <stdin>:11): Cannot index array with string "fileName"

返回密钥fileName等于某个参数的md5值的正确方法是什么?

2 个答案:

答案 0 :(得分:8)

找到答案:

cat <file>.json | jq -r '.files[] | select(.fileName=="FOO") | .md5'

答案 1 :(得分:0)

或: 猫.json | jq -r'.files [] | select(.fileName ==“ FOO”)。md5'