我尝试使用bash从curl解析JSON响应旁边我现在决定尝试使用jq。 我已经检查了文档,但我找不到通过元素迭代和“做”某事的方法。
这是关于我想要实现的想法,将结果从jq转换为数组,(它不起作用)
__json=$($omd_response | ~/local-workspace/bash/jq -r '[.]')
for x in "${__json[@]}"
do
echo "-metadata" $x
done
非常感谢任何其他想法。 感谢
答案 0 :(得分:0)
此:
declare -a things
things=($(jq tostring myfile.json) )
for x in "${things[@]}"; do
echo "-metadata" "$x"
done
几乎有效。它在空白处分裂。
这有效:
declare -a things
OIFS=$IFS
IFS= things=($(jq -r 'tojson|tostring' myfile.json) )
IFS=$OIFS
for x in "${things[@]}"; do
echo "-metadata" "$x"
done
真的,我们需要一个支持JSON的shell ......类似于ksh93的复合变量,但与JSON兼容。