繁体   English   中英

jq将结果转换为bash数组

[英]jq cast result into bash array

在我尝试使用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的外壳……类似于ksh93的复合变量,但是与JSON兼容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM