zhangqian
2023-10-21 578b74f9de4b96e88e2fddb726c7c6f78162b033
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
}