zhangqian
2024-03-19 7d80867c1d2d8340da8e106b4af2ceaba3fc9fc1
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
}