route53 выводит список размещенных зон с ошибками «не поддерживает индексацию» - PullRequest
0 голосов
/ 24 сентября 2018

Я не могу разобрать вывод ответа ниже.

Когда я включаю строку:

"fmt.Println(*r["HostedZones"][0])"

, она выдает:

"type *route53.ListHostedZonesOutput does not support indexing". 

Я хочу получить "Id" и "Имя" каждой зонына выходе.Если тип не поддерживает индексирование, как я могу получить нужные мне части вывода?

Спасибо.

package main

import (
        "log"
        "fmt"
        "reflect"
        "github.com/aws/aws-sdk-go/aws/session"
        "github.com/aws/aws-sdk-go/service/route53"
)

func main() {
        r53 := route53.New(session.New())
        r, err := r53.ListHostedZones(&route53.ListHostedZonesInput{})
        if err != nil {
                log.Fatal(err)
        }
        log.Println(r)
        fmt.Println(reflect.TypeOf(r))
        fmt.Println(*r["HostedZones"][0])
}

пример вывода:

{
  HostedZones: [{
      CallerReference: "5E95CADD-59E-A6",
      Config: {
        PrivateZone: false
      },
      Id: "/hostedzone/Z1Q1TZTO",
      Name: "testzone.local.",
      ResourceRecordSetCount: 4
    },{
      CallerReference: "39895A3C-9B8B-95C2A3",
      Config: {
        PrivateZone: false
      },
      Id: "/hostedzone/Z2MXJQ7",
      Name: "2.168.192.in-addr.arpa.",
      ResourceRecordSetCount: 3
    }],
  IsTruncated: false,
  MaxItems: "100"
}

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

вы, вероятно, пытаетесь индексировать указателем на ваш struct, ваш r является указателем, вы можете получить значение с привязкой, выполнив (*r)["yourkeyhere"]["index"].

0 голосов
/ 24 сентября 2018

Это пример того, как получить Id:

fmt.Println(*r.HostedZones[0].Id)

Имя:

fmt.Println(*r.HostedZones[0].Name)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...