package convertx import "reflect" func StructToMap(obj interface{}) map[string]interface{} { obj1 := reflect.TypeOf(obj) obj2 := reflect.ValueOf(obj) data := make(map[string]interface{}) for i := 0; i < obj1.NumField(); i++ { if obj1.Field(i).Tag.Get("mapstructure") != "" { data[obj1.Field(i).Tag.Get("mapstructure")] = obj2.Field(i).Interface() } else { data[obj1.Field(i).Name] = obj2.Field(i).Interface() } } return data }