package common import "reflect" // setFieldInfo 根据反射获取实体的信息 func setFieldInfo(entity interface{}) map[string]string { rt := reflect.TypeOf(entity) if rt.Kind().String() == "ptr" { rt = rt.Elem() } if rt.Kind().String() != "struct" { return nil } infoMap := make(map[string]string) for i := 0; i < rt.NumField(); i++ { jsonTag := rt.Field(i).Tag.Get("json") ormTag := rt.Field(i).Tag.Get("orm") if jsonTag == "" { continue } if ormTag == "" { infoMap[jsonTag] = rt.Field(i).Name } else { infoMap[jsonTag] = ormTag } } return infoMap } func Snake2Orm(entity interface{}, field string) string { return setFieldInfo(entity)[field] }