in pkg/common/util/response.go [123:154]
func humpToLine(in any) any {
var m map[string]any
if v, ok := in.(map[string]any); ok {
m = v
} else {
return in
}
out := make(map[string]any, len(m))
for k1, v1 := range m {
x := humpToUnderline(k1)
if v1 == nil {
out[x] = v1
} else if reflect.TypeOf(v1).Kind() == reflect.Struct {
out[x] = humpToLine(struct2Map(v1))
} else if reflect.TypeOf(v1).Kind() == reflect.Slice {
value := reflect.ValueOf(v1)
newTemps := make([]any, 0, value.Len())
for i := 0; i < value.Len(); i++ {
newTemp := humpToLine(value.Index(i).Interface())
newTemps = append(newTemps, newTemp)
}
out[x] = newTemps
} else if reflect.TypeOf(v1).Kind() == reflect.Map {
out[x] = humpToLine(v1)
} else {
out[x] = v1
}
}
return out
}