game/common/serialization/serialization.go
2025-05-31 23:34:58 +08:00

22 lines
446 B
Go

package serialization
import "reflect"
func StructToMap(obj interface{}) map[string]interface{} {
out := make(map[string]interface{})
v := reflect.ValueOf(obj)
if v.Kind() == reflect.Ptr {
v = v.Elem()
}
t := v.Type()
for i := 0; i < v.NumField(); i++ {
field := t.Field(i)
key := field.Tag.Get("json") // 使用 json tag 作为字段名
if key == "" {
key = field.Name
}
out[key] = v.Field(i).Interface()
}
return out
}