使用jq,获取数组中shell定义的JSON对象中的特定键的值

使用jq,获取数组中shell定义的JSON对象中的特定键的值,json,linux,xcode,shell,jq,Json,Linux,Xcode,Shell,Jq,鉴于: 使用jq,获取“customer.name”的值 我的尝试: [{ "customer.name":"malinda", "customer.details":"test123" }] 使用jq: echo $response | jq -r .[] | "customer.name" 或不带双引号: echo '[{ "customer.name":"malinda", "customer.details":"test123" }]' | jq

鉴于:

使用jq,获取“customer.name”的值

我的尝试:

   [{
    "customer.name":"malinda",
    "customer.details":"test123"
    }]
使用jq:

echo $response | jq -r .[] | "customer.name"
或不带双引号:

echo '[{ "customer.name":"malinda", "customer.details":"test123" }]' | 
  jq '.[]."customer.name"'

由于点
既不是字母数字也不是下划线,您需要引用密钥名称。

我需要获取“malinda”[{“customer.name”:“malinda”,“customer.details”:“test123”}]试试这个我上传了不正确的单面注释,您应该始终引用您的jq表达式,如果shell允许,最好使用单引号。没有它,您的尝试就不会成功,因为
|“customer.name”
部分被解释为shell命令,而不是jq表达式的一部分。@MalindaPeiris-请接受语法和其他更正(例如JSON),否则,您可能会发现Q被否决。@MalindaPeiris
-r
输出原始字符串,而不是JSON文本,如帮助中所述。
echo '[{ "customer.name":"malinda", "customer.details":"test123" }]' |
  jq -r '.[]."customer.name"'