オブジェクトのjson配列を文字列としてそれらのオブジェクトを使用してbash配列に解析するにはどうすればよいですか?
私は次のことをしようとしています:
CONVO=$(get_json_array | jq '.[]')
for CONVERSATION in $CONVERSATIONS
do
echo "${CONVERSATION}"
done
ただし、エコーは特定のオブジェクトではなく行を出力します。オブジェクトの形式は次のとおりです。
{ "key1":"value1", "key2": "value2"}
そして私はそれをAPIに渡す必要があります:
api_call '{ "key1":"value1", "key2": "value2"}'
問題は、jq
がまだテキスト行を出力しているだけであるということです。 各配列要素を単一のユニットとして保持する必要はありません。とはいえ、改行がどのオブジェクトでも有効な文字でない限り、 各オブジェクトを別々の行に出力することもできます。
get_json_array | jq -c '.[]' | while read object; do
api_call "$object"
done
もちろん、その仮定の下では、readarray
4でbash
コマンドを使用して配列を作成できます。
readarray -t conversations < <(get_son_array | jq -c '.[]')
for conversion in "${conversations[@]}"; do
api_call "$conversation"
done