shell-如何通过jq从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, "

我需要在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,
    "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'