选择key: jq值,输出为数组



使用jq时,很容易选择要输出的键值,但默认情况下数组会消失。如何将输出保持为数组?

<标题>例子
# My JSON
my_json='{"count":2,"values":[{"name": "Hans","age": 22},{"name": "John","age": 88}]}'
# Getting names
echo $my_json | jq ".values[].name"
"Hans"
"John"

我想要的

["Hans", "John"]

有了这样的输出,我可以通过输出到tsv来删除引号。

# Output to tsv
echo '["Hans", "John"]' | jq -r '.[]'

可以加上方括号(最好是)和c(压缩输出)选项,以便在单行上返回数组(如在问题中),例如

echo $my_json | jq -c '[.values[].name]'

不需要两个命令。你可以直接得到

Hans
John
通过使用
printf %s "$my_json" | jq -r '.values[].name'

jqplay的演示

相关内容

  • 没有找到相关文章

最新更新