package mainimport ( "encoding/json" "fmt" "reflect" "time")type Body struct { Person1 string Age int Salary float32}func Struct2Map(obj interface{}) (data map[string]interface{}, err error) { data = make(map[string]interface{}) objT := reflect.TypeOf(obj) objV := reflect.ValueOf(obj) for i := 0; i < objT.NumField(); i++ { data[objT.Field(i).Name] = objV.Field(i).Interface() } err = nil return}func Test1() { t := time.Now() a := Body{"aaa", 2, 12.34} elem := reflect.ValueOf(&a).Elem() type_ := elem.Type() m := map[string]interface{}{} for i := 0; i < type_.NumField(); i++ { m[type_.Field(i).Name] = elem.Field(i).Interface() } fmt.Println(time.Now().Sub(t), m)}func Test2() { t := time.Now() persion := Body{"aaa", 2, 12.34} j, _ := json.Marshal(persion) fmt.Println(time.Now().Sub(t), string(j))}func Test3() { m := make(map[string]interface{}) t := time.Now() persion := Body{"aaa", 2, 12.34} j, _ := json.Marshal(persion) json.Unmarshal(j, &m) fmt.Println(time.Now().Sub(t), m)}func Test4() { t := time.Now() persion := Body{"aaa", 2, 12.34} ret, _ := Struct2Map(persion) fmt.Println(time.Now().Sub(t), ret)}func main() { Test1() Test2() Test3() Test4()}
package mainimport ( "fmt" "reflect" "time")type User struct { Id int64 Username string Password string Logintime time.Time}func Struct2Map(obj interface{}) map[string]interface{} { t := reflect.TypeOf(obj) v := reflect.ValueOf(obj) var data = make(map[string]interface{}) for i := 0; i < t.NumField(); i++ { data[t.Field(i).Name] = v.Field(i).Interface() } return data}func main() { user := User{5, "zhangsan", "pwd", time.Now()} data := Struct2Map(user) fmt.Println(data)}
點(diǎn)擊查看更多內(nèi)容
為 TA 點(diǎn)贊
評(píng)論
評(píng)論
共同學(xué)習(xí),寫下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦