0

在我尝试使用 bash 解析来自 curl 的 JSON 响应之后,我现在决定尝试使用 jq。我已经检查了文档,但我找不到一种方法来遍历元素并“做”一些事情。

这是我想要实现的目标,将结果从 jq 转换为数组,(它不起作用)

__json=$($omd_response | ~/local-workspace/bash/jq -r '[.]')
for x in "${__json[@]}"
do
  echo "-metadata" $x
done

任何其他想法都非常感谢。谢谢

4

1 回答 1

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 兼容。

于 2014-06-19T06:17:35.447 回答