wangpengfei
2023-07-04 1142bc88cebcfedac1617749bc195a2615799518
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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
}