Go 反序列化aws结构到字符串映射
我正在尝试在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 {
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
}