如何将一个json对象数组解析为一个bash数组,并将这些对象作为字符串?
我正在尝试做以下事情:
CONVO=$(get_json_array | jq '.[]')
for CONVERSATION in $CONVERSATIONS
do
echo "${CONVERSATION}"
done
但是echo输出的是行而不是特定的对象。对象的格式是:
{ "key1":"value1", "key2": "value2"}
我需要将它传递给一个API:
api_call '{ "key1":"value1", "key2": "value2"}'
3条答案
按热度按时间5uzkadbs1#
问题是
jq
仍然只是输出文本行;你不一定要把每个数组元素作为一个单元来保存。也就是说,只要换行符不是任何对象中的有效字符,你仍然可以在单独的行中输出每个对象。在此假设下,您可以在
bash
4中使用readarray
命令来建立数组:oug3syen2#
下面是一个没有循环的解决方案:
0x6upsns3#
也是另一个选择,而不必循环。
希望能帮到一些人