Files

32 lines
607 B
Go

package mapping
import "fmt"
// ConvertAnyMap converts a map[any]any to a map[string]any
// please make sure i is a map[any]any
func ConvertAnyMap(i any) any {
switch v := i.(type) {
case map[any]any:
m2 := make(map[string]any)
for k, val := range v {
keyStr := fmt.Sprintf("%v", k)
m2[keyStr] = ConvertAnyMap(val)
}
return m2
case map[string]any:
m2 := make(map[string]any)
for k, val := range v {
m2[k] = ConvertAnyMap(val)
}
return m2
case []any:
m2 := make([]any, len(v))
for i, val := range v {
m2[i] = ConvertAnyMap(val)
}
return m2
default:
return v
}
}