JQ(NAMEに基づいてIDを取得)

JQ(NAMEに基づいてIDを取得)

私はこのような長い配列を得ました

{
    "id": "byu6g6c4cjys5mdkg5znh8ju8c",
    "create_at": 1511875272294,
    "update_at": 1511875272294,
    "delete_at": 0,
    "display_name": "BMA",
    "name": "BMA",
    "description": "",
    "email": "[email protected]",
    "type": "O",
    "company_name": "",
    "allowed_domains": "",
    "invite_id": "gdgz1tbxuinntx1fbr1ax7kehy",
    "allow_open_invite": false,
    "scheme_id": null
  }

JQでBMAというIDを取得したいです。現在、 "jq -r '.[]["name"]" を解析し、カールの出力を名前でフィルタリングでき、100 個の異なる名前で "BMA" を取得できますが、名前のある ID だけをフィルタリングするだけです。 。 = BMA 。どんなアイデアがありますか?

ベストアンサー1

ジャック

次の方法でこれを行うことができます。

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

名前がある場合BMA.id

シェル変数の値を使用するには、次のようjqにインポートします--arg

myvariable=BMA
jq --arg name "$myvariable" '.[] | select( .name == $name ).id'

JSON

json -c 'this.name === "BMA"' -a id

おすすめ記事