JQを使用したJSONの解析

JQを使用したJSONの解析

私はBashを使用してLinuxシステムで次のスクリプトを実行しています。

JSONファイルの内容:[ { "id": 123456, "firstName": "John", "lastName": "Smith", "email": "[email protected]" } ]


JSONファイルは、${data[0]}Bashスクリプトにパイプされた配列に保存されます。


クンクンスクリプト:

trafficEmployeeId=123456 cat "${data[0]}" | jq --arg employeeId $trafficEmployeeId '.[] | select(.id == $employeeId) | .firstName'


スクリプトの出力は必要ですJohnが、何も取得できません。

ベストアンサー1

trafficEmployeeIdシェル変数数字jq役に立ちますひも議論。
解決策は、パラメータを次のように解析することです。数字そしてジャック~のtonumber機能。
2番目はdata[0]オブジェクトが1つだけ含まれている配列なので、直接使用し.[0]て単純なif演算子条件を適用するだけで十分です。

完璧なソリューション:

trafficEmployeeId=123456
echo "${data[0]}" | jq --arg employeeId "$trafficEmployeeId" '.[0] 
      | if .id == ($employeeId | tonumber) then .firstName else empty end'

出力:

"John"

おすすめ記事