繁体   English   中英

shell-如何从jq的json响应中获取价值

[英]shell - How to get value from json reponse with 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,
    "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密钥。 这个卷曲的要求将无法正常工作。

您需要第一个 “ receiving_dns_records”项的“ value”值:

jq -r '.receiving_dns_records[0].value'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM