Go 反序列化aws结构到字符串映射

Go 反序列化aws结构到字符串映射,go,aws-sdk,Go,Aws Sdk,我正在尝试在go中反序列化AWS结构,以便传入参数并基于这些参数输出值,例如 func DisplayResults(conf *config.Configuration, regionalData []*ec2.DescribeInstancesOutput) { log.Debug("Displaying results") log.Debug("Table view [%v]", conf.Display) for _, rv := range regionalData {

我正在尝试在go中反序列化AWS结构,以便传入参数并基于这些参数输出值,例如

func DisplayResults(conf *config.Configuration,
regionalData []*ec2.DescribeInstancesOutput) {

  log.Debug("Displaying results")
  log.Debug("Table view [%v]", conf.Display)

  for _, rv := range regionalData {
    for _, reservation := range rv.Reservations {
      for _, instance := range reservation.Instances {
        var i map[string]interface{}
        json.Unmarshal(instance, i)
      }
    }
  }
}
我还尝试使用:

"github.com/fatih/structs"
但是,我认为我需要以某种方式解除结构的防护,因为我的输出如下所示:

RamdiskId:<nil> SriovNetSupport:<nil> VpcId:0xc420321ba0 State:map[Code:0xc42031ea08 Name:0xc420321890] VirtualizationType:0xc420321b90 CapacityReservationId:<nil> ClientToken:0xc420321560 HibernationOptions:map[Configured:0xc42031e96b] IamInstanceProfile:map[Arn:0xc4203215a0 Id:0xc4203215b0] ImageId:0xc4203215c0

是什么让您认为需要解组一个实例?据我所见,它已经是一个可以按原样使用的结构。我的目标是我可以动态地传入参数,如ipv4或实例id,并且只返回这些结构值的值,如果有意义的话,我不想为每个参数编写if语句
RamdiskId:<nil> SriovNetSupport:<nil> VpcId:0xc420321ba0 State:map[Code:0xc42031ea08 Name:0xc420321890] VirtualizationType:0xc420321b90 CapacityReservationId:<nil> ClientToken:0xc420321560 HibernationOptions:map[Configured:0xc42031e96b] IamInstanceProfile:map[Arn:0xc4203215a0 Id:0xc4203215b0] ImageId:0xc4203215c0
  func DisplayResults(conf *config.Configuration, regionalData []*ec2.DescribeInstancesOutput, parameters []string) {
  log.Debug("Displaying results")
  log.Debug("Table view [%v]", conf.Display)

  for _, rv := range regionalData {
    for _, reservation := range rv.Reservations {
      for _, instance := range reservation.Instances {
          y := deref(instance)

         log.Print("%v", y["InstanceId"])
      }
    }
  }
}

  func deref(instance *ec2.Instance) ec2.Instance {
  var i ec2.Instance
  x := &i
  *x = *instance
  return i
 }