cluade code review changes
This commit is contained in:
@@ -20,13 +20,21 @@ func Map(obj any) map[string]any {
|
||||
|
||||
for i := range val.NumField() {
|
||||
fieldName := typ.Field(i).Name
|
||||
fieldValueKind := val.Field(i).Kind()
|
||||
field := val.Field(i)
|
||||
fieldValueKind := field.Kind()
|
||||
var fieldValue any
|
||||
|
||||
if fieldValueKind == reflect.Struct {
|
||||
fieldValue = Map(val.Field(i).Interface())
|
||||
} else {
|
||||
fieldValue = val.Field(i).Interface()
|
||||
switch fieldValueKind {
|
||||
case reflect.Struct:
|
||||
fieldValue = Map(field.Interface())
|
||||
case reflect.Pointer:
|
||||
if !field.IsNil() && field.Elem().Kind() == reflect.Struct {
|
||||
fieldValue = Map(field.Elem().Interface())
|
||||
} else {
|
||||
fieldValue = field.Interface()
|
||||
}
|
||||
default:
|
||||
fieldValue = field.Interface()
|
||||
}
|
||||
|
||||
result[fieldName] = fieldValue
|
||||
|
||||
Reference in New Issue
Block a user