入出力がJSON形式のWeb APIを呼び出すシェルスクリプトを実装する必要があったため、簡単にJSONを扱う方法を調査した。
結論としては、Web APIへ入力するJSONの作成にはヒアドキュメントを使い、Web APIから出力されたJSONの解析にはjqを使うこととした。
サンプルコード
number=1
string="abc"
# JSON作成にはヒアドキュメントを使う
json=$(cat << EOS
{
"number": ${number},
"string": "${string}"
}
EOS
)
echo "$json"
# => {
# "number": 1,
# "string": "abc"
# }
# JSON解析にはjqを使う
echo $JSON | jq '.number'
# => 1
# -r: string型の"を除去する
echo $JSON | jq -r '.string'
# => abc