in cfn/encoding/unstringify.go [212:237]
func Unstringify(data map[string]interface{}, v interface{}) error {
t := reflect.TypeOf(v).Elem()
val := reflect.ValueOf(v).Elem()
for i := 0; i < t.NumField(); i++ {
f := t.Field(i)
jsonName := f.Name
jsonTag := strings.Split(f.Tag.Get("json"), ",")
if len(jsonTag) > 0 && jsonTag[0] != "" {
jsonName = jsonTag[0]
}
if value, ok := data[jsonName]; ok {
newValue, err := convertType(f.Type, value)
if err != nil {
return err
}
val.FieldByName(f.Name).Set(newValue)
}
}
return nil
}