| 1234567891011121314151617181920212223242526272829303132 |
- 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]
- }
|