我试图使用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/

10-13 07:12