私は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"