使用jq,获取数组中shell定义的JSON对象中的特定键的值
鉴于: 使用jq,获取“customer.name”的值 我的尝试:使用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
[{
"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"'