jq を使用してオブジェクト内の変数の値に基づいてオブジェクトを選択する 質問する

jq を使用してオブジェクト内の変数の値に基づいてオブジェクトを選択する 質問する

次の 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"しかし、サブキーの値 (ここでは)を指定して、特定のオブジェクトのみを印刷する方法がわかりません。

ベストアンサー1

この投稿から引用jq で JSON を処理する、あなたはselect(bool)このような:

$ jq '.[] | select(.location=="Stockholm")' json
{
  "location": "Stockholm",
  "name": "Walt"
}
{
  "location": "Stockholm",
  "name": "Donald"
}

おすすめ記事