【发布时间】:2017-09-19 02:01:23
【问题描述】:
我正在尝试使用 jq 从 cURL 返回的 JSON 中获取一个值。
这是传递给 jq 的 JSON cURL(而且,FTR,我希望 jq 返回不带引号的“VALUE-I-WANT”):
[
{
"success":{
"username":"VALUE-I-WANT"
}
}
]
我最初尝试过这个:
jq ' . | .success | .username'
得到了
jq: error (at <stdin>:0): Cannot index array with string "success"
然后我尝试了一堆变体,但都没有运气。
通过大量的网络搜索,我找到了this SE entry,并认为它可能是我的救星(剧透,它不是)。但它让我尝试了这些:
jq -r '.[].success.username'
jq -r '.[].success'
他们没有返回错误,而是返回“null”。这可能是也可能不是改进。
谁能告诉我我在这里做错了什么?为什么它是错的?
【问题讨论】:
-
jq -r '.[].success.username可以在您的示例中正常工作,无论是使用 jq 1.3、jq 1.4、jq 1.5 还是当前的“主”版本。