BashでJSONを宣言すると、多くの文字をエスケープする必要があるため、少し迷惑です。
次のような配列があるとしましょう。
value1="foo"
value2="bar"
arr=("key1" "$value1" "key2" "$value2")
":"と"、"文字を使用して配列を連結する方法はありますか?
私が考えることができる唯一のことは、次のように正しい文字を追加するループです。
data="";
for i in "${arr[@]}"; do
data="$data\"$i\""
done
ベストアンサー1
そしてjo
、コマンドラインからJSONを簡単に作成できます。
$ jo -p key1="$value1" key2="$value2"
{
"key1": "foo",
"key2": "bar"
}
または所望の最終結果に応じて
$ jo -a -p "$(jo key1="$value1")" "$(jo key2="$value2")"
[
{
"key1": "foo"
},
{
"key2": "bar"
}
]
文字列の値jo
も正しくエンコードされます。$value1
$value2