|
@@ -127,7 +127,23 @@ loop:
|
|
|
rVal = from.FieldByName(fType.Name)
|
|
|
}
|
|
|
case reflect.Map:
|
|
|
- if rVal = from.MapIndex(reflect.ValueOf(strings.ToLower(fType.Name))); !rVal.IsValid() {
|
|
|
+ /*
|
|
|
+ log.Println(fType.Name)
|
|
|
+ if rVal = from.MapIndex(reflect.ValueOf(strings.ToLower(fType.Name))); !rVal.IsValid() {
|
|
|
+ rVal = from.MapIndex(reflect.ValueOf(fType.Name))
|
|
|
+ }
|
|
|
+ */
|
|
|
+ mapKeys := from.MapKeys()
|
|
|
+ lowerFTypeName := strings.ToLower(fType.Name)
|
|
|
+ for _, key := range mapKeys {
|
|
|
+ lowerKey := strings.ToLower(key.String())
|
|
|
+ if lowerKey == lowerFTypeName {
|
|
|
+ rVal = from.MapIndex(key)
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if !rVal.IsValid() {
|
|
|
+ // Если ни один из ключей не совпал, попытаться найти по оригинальному ключу
|
|
|
rVal = from.MapIndex(reflect.ValueOf(fType.Name))
|
|
|
}
|
|
|
default:
|