我有一些像这样的 JSON:
{
"x": [
{
"name": "Hello",
"id": "211"
},
{
"name": "Goodbye",
"id": "221"
},
{
"name": "Christmas",
"id": "171"
}
],
"y": "value"
}
使用jq,给定一个名称值(例如圣诞节),我怎样才能获得它的关联ID(即171)。
我已经能够检查数组对象之一中是否存在该名称,但我不知道如何过滤它
jq -r 'select(.x[].name == "Christmas")'
jq
方法:
jq -r '.x[] | select(.name == "Christmas").id' file
171
如果
select(boolean_expression)
对于该输入返回 boolean_expression
,则函数 true
会保持其输入不变,否则不产生输出。