我试图使用jq从cURL返回的JSON中获取一个值。
这是JSON cURL传递给jq(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,我想这可能是我的救星(spoiler,它不是)。但它让我尝试了这些:
jq -r '.[].success.username'
jq -r '.[].success'
他们没有返回错误,而是返回“null”。可能是,也可能不是。
有人能告诉我我做错了什么吗?为什么错了?
最佳答案
您需要将.[]
的输出导入下一个过滤器。
jq -r '.[] | .success.username' tmp.json
关于json - 我无法得到jq给我想要的值(value)。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43553348/