在我尝试使用 bash 解析来自 curl 的 JSON 响应之后,我现在决定尝试使用 jq。我已经检查了文档,但我找不到一种方法来遍历元素并“做”一些事情。
这是我想要实现的目标,将结果从 jq 转换为数组,(它不起作用)
__json=$($omd_response | ~/local-workspace/bash/jq -r '[.]')
for x in "${__json[@]}"
do
echo "-metadata" $x
done
任何其他想法都非常感谢。谢谢
这个:
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 兼容。