生日随想
三月阳春人渐老
万事不遂心中悲
何年携孙游陇上
不负流年去无回
import (
"errors"
"log"
"reflect"
)
// 转换结构体到map
func CopyStr2MapX(p interface{}) map[string]interface{} {
str2Map, _ := CopyStr2Map(p)
return str2Map
}
// 转换结构体到map
func CopyStr2Map(p interface{}) (map[string]interface{}, error) {
var m = map[string]interface{}{}
if reflect.TypeOf(p).Kind() != reflect.Ptr {
log.Println("参数非指针")
return nil, errors.New("参数非指针")
}
value := reflect.ValueOf(p).Elem() //
c := reflect.TypeOf(p).Elem().NumField()
for i := 0; i < c; i++ {
log.Println(i, value.Type().Field(i), value.Field(i))
(m)[value.Type().Field(i).Name] = value.Field(i).Interface()
}
return m, nil
}