2017-12-22 8 views
1

を取得する:JQを使用してJQ:どのように配列のいずれかと一致し、私はこのようないくつかのJSONを持つ兄弟値

{ 
    "x": [ 
    { 
     "name": "Hello", 
     "id": "211" 
    }, 
    { 
     "name": "Goodbye", 
     "id": "221" 
    }, 
    { 
     "name": "Christmas", 
     "id": "171" 
    } 
    ], 
    "y": "value" 
} 

、名前値(例えばクリスマス)与えられたどのように私はそれがID(すなわち171関連しています得ることができます)。

私は限り、配列のオブジェクトのいずれかに名前が存在するかどうかをチェックすることができることとして持っているが、私は

jq -r 'select(.x[].name == "Christmas")' 

答えて

3

jqアプローチをそれをフィルタリングする方法を考え出すことはできません:boolean_expression戻り場合

jq -r '.x[] | select(.name == "Christmas").id' file 
171 

機能select(boolean_expression)は不変の入力を生成しますその入力に対しては、それ以外の場合は出力を生成しません。

関連する問題