我有以下 json 文件:
{
"FOO": {
"name": "Donald",
"location": "Stockholm"
},
"BAR": {
"name": "Walt",
"location": "Stockholm"
},
"BAZ": {
"name": "Jack",
"location": "Whereever"
}
}
我正在使用 jq 并希望获取“位置”为“斯德哥尔摩”的对象的“名称”元素。
我知道我可以得到所有的名字
cat json | jq .[] | jq ."name"
"Jack"
"Walt"
"Donald"
但我不知道如何只打印某些对象,给定子键的值(此处:"location": "Stockholm"
)。
最佳答案
改编自 Processing JSON with jq 上的这篇文章,您可以使用 select(bool)
像这样:
$ jq '.[] | select(.location=="Stockholm")' json
{
"location": "Stockholm",
"name": "Walt"
}
{
"location": "Stockholm",
"name": "Donald"
}
https://stackoverflow.com/questions/18592173/