shell-如何通过jq从json响应中获取值
我需要在bash中获得jq的“mxa.mailgun.org” 从curl请求到api的json响应:shell-如何通过jq从json响应中获取值,json,bash,shell,curl,jq,Json,Bash,Shell,Curl,Jq,我需要在bash中获得jq的“mxa.mailgun.org” 从curl请求到api的json响应: { "domain": { "created_at": "Sun, 13 May 2018 09:48:21 GMT", "id": "5af809e51f4b8b00011ee1aa", "name": "leadedign.co.uk", "require_tls": false, "skip_verification": false, "
{
"domain": {
"created_at": "Sun, 13 May 2018 09:48:21 GMT",
"id": "5af809e51f4b8b00011ee1aa",
"name": "leadedign.co.uk",
"require_tls": false,
"skip_verification": false,
"smtp_login": "postmaster@leddesign.co.uk",
"smtp_password": "07d1dee-43f1869c",
"spam_action": "disabled",
"state": "unverified",
"type": "custom",
"web_prefix": "email",
"web_scheme": "http",
"wildcard": false
},
"message": "Domain DNS records have been updated",
"receiving_dns_records": [
{
"cached": [
"1 leadeesign.co.uk"
],
"priority": "10",
"record_type": "MX",
"valid": "unknown",
"value": "mxa.mailgun.org"
},
{
"cached": [
"1 leaesign.co.uk"
],
"priority": "10",
"record_type": "MX",
"valid": "unknown",
"value": "mxb.mailgun.org"
}
]
}
我试过:
curl -X PUT -s --user 'api:key-1659e3c0faff2c4e96e4' -G https://api.mailgun.net/v3/domains/leadereign.co.uk/verify -d skip=0 -d limit=3 | jq '.[] | {receiving_dns_records: .[]}'
curl -X PUT -s --user 'api:key-165903eaff2c4e96e4' -G https://api.mailgun.net/v3/domains/leaderfeign.co.uk/verify -d skip=0 -d limit=3 | jq '.[] | {receiving_dns_records: .[value]}'
ps.出于安全原因,域和api密钥已更改。此curl请求无效。您需要第一个“接收dns记录”项的“值”值:
请修复JSON。看起来您只需要数组中的第一个.value。是吗?谢谢!这就解决了问题。我已经为此挣扎了将近一天。是的,
jq
是一种函数式语言。我还在为那些复杂的事情绞尽脑汁。
jq -r '.receiving_dns_records[0].value'