【问题标题】:Using jq to store part of JSON in variable使用 jq 将部分 JSON 存储在变量中
【发布时间】:2017-08-03 13:57:05
【问题描述】:

您好,我的 shell 和 jq 有问题。

我有文件,比如 text.txt,它只包含 JSON,比如 {"rows":[{"example":"20"}]}。 我需要在 shell 中编写一个脚本,该脚本将读取此文本文件作为第一个参数,并将来自该 JSON 的“示例”的值存储在变量中, 使用 jq。

这是我目前所拥有的,但它只是打印出一个空行:

file=$( readlink -f "$1" )
variable="$file" | jq -j ".rows[].example"
echo "$variable"

对我来说有趣的是这段代码可以正常工作

file=$( readlink -f "$1" )
cat "$file" | jq -j ".rows[].example"

表示它将打印出 20。

有谁知道我做错了什么。 谢谢各位

【问题讨论】:

  • "$file" | jq -j ".rows[].example"cat "$file" | jq -j ".rows[].example" 不一样...你为什么会期待别的呢?
  • @Fredegar - 如果数组包含多个项目怎么办?

标签: json shell jq


【解决方案1】:

不是真正的jq问题,而是

variable="$file" | jq -j ".rows[].example"

我怀疑你的意图是这样的:

variable=$(cat "$file" | jq -j ".rows[].example")

【讨论】:

    猜你喜欢
    • 2013-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多