package convert import ( "reflect" "strings" ) func ModelToMap(obj any) map[string]any { result := make(map[string]any) val := reflect.ValueOf(obj).Elem() // 获取结构体的值 typ := val.Type() // 获取结构体的类型 for i := 0; i < val.NumField(); i++ { // 遍历结构体的每个字段 field := val.Field(i) if !field.IsNil() { // 如果字段不为nil fieldType := typ.Field(i) tagValue := fieldType.Tag.Get("gorm") // 获取gorm标签值 key := strings.Split(tagValue, ",")[0] // 假设tag格式为"column:value,other_options" if key == "" { key = fieldType.Name // 如果没有指定tag,则使用字段名作为key } result[key] = field.Elem().Interface() // 将字段值存入map } } return result }