json jq:如何匹配数组中的一个并获取属性值

cxfofazt  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(166)

我有一个这样的JSON:

{
  "x": [
    {
      "name": "Hello",
      "id": "211"
    },
    {
      "name": "Goodbye",
      "id": "221"
    },
    {
      "name": "Christmas",
      "id": "171"
    }
  ],
  "y": "value"
}

字符串
使用jq,给定一个名称值(例如Christmas),我如何获得它的关联id(即171)。
我已经能够检查数组对象中是否存在名称,但我不知道如何过滤它

jq -r 'select(.x[].name == "Christmas")'

of1yzvn4

of1yzvn41#

**jq**方法:

jq -r '.x[] | select(.name == "Christmas").id' file
171

字符串
如果boolean_expression返回true,则函数select(boolean_expression)产生其输入不变,否则不产生输出。

mwyxok5s

mwyxok5s2#

也可以这样做:

jq '.x[] | select(.name == "Christmas").id'

字符串
你也可以在链接online jq play上试试这个

相关问题