使用jq从JSON获取价值

时间:2019-12-06 12:00:46

标签: json bash jq

我正在尝试将json导出为变量:

$ export VARIABLE='[{"id": 2, "name": "job", "description": "job", "token": "toknetokentokentoken/token="}]'

$ echo $VARIABLE | jq .

[
  {
    "id": 2,
    "name": "job",
    "description": "job",
    "token": "toknetokentokentoken/token="
  }
]

然后我试图从令牌中获取值:

TOKEN=$(echo "$VARIABLE" | jq -r '.[] | select (.name == "job").token')

,但不返回任何内容。我正在寻找,但是我找不到问题。

1 个答案:

答案 0 :(得分:0)

尝试

VARIABLE='[{"id": 2, "name": "job", "description": "job", "token": "toknetokentokentoken/token="}]'
TOKEN=$(echo "$VARIABLE"|jq '.[] | select(.name == "job").token')
echo "$TOKEN"

编辑:,如建议的一些说明:

OP并不隐瞒它什么也没做,但正如@chepner在评论中指出的那样:资产不会产生输出

反引号和$()是可互换的,您应使用$(),因为反引号已过时并且不支持嵌套