{"name": "John", "age": 30, "city": "New York"}
我有以下的 JSON 文件:
{
"FOO": {
"name": "Donald",
"location": "Stockholm"
},
"BAR": {
"name": "Walt",
"location": "Stockholm"
},
"BAZ": {
"name": "Jack",
"location": "Whereever"
}
}
我正在使用jq,并希望获取“location”为“Stockholm”的对象的“name”元素。
我知道可以通过以下方式获取所有名称
cat json | jq .[] | jq ."name"
"Jack"
"Walt"
"Donald"
但是我无法弄清楚如何仅打印特定对象,给定一个子键的值(这里是:"location" : "Stockholm"
)。
jq 'keys' json
。如果你指的是过滤后的键,给出了"FOO" "BAR"
,请使用这个答案,并使用.key
代替[.key, .value.name]
。 - ggorlen