func structToMap(s interface{}) map[string]interface{} { result := make(map[string]interface{}) // 使用反射获取结构体字段信息 v := reflect.ValueOf(s) t := reflect.TypeOf(s) for i := 0; i < t.NumField(); i++ { // 将结构体字段名和值存储到Map中 result[t.Field(i).Name] ...
通过标签(tag)和反射,将上文示例的newUser()返回的结果转化成下面的一个map。其中包含struct的域的展开,定制化struct的方法。 map[string]interface{}{"name":"user","no_dive":StructNoDive{NoDive:1},// dive struct field"url":"https://github.com/liangyaopei","star":1,// customized method"time"...
personMap := map[string]interface{}{ "Name": "John", "Age": 30, "Address": "123 Street", } person, err := mapToStruct(personMap) if err != nil { fmt.Println("Error:", err) return } // 输出转换后的结构体 fmt.Println(person) } 在上述示例中,我们定义了一个Person结构体,并使...
fmt.Println("MapToJsonDemo err: ", err) } fmt.Println(string(jsonStr)) } AI代码助手复制代码 输出: 例2: funcMapToJsonDemo2(){ b, _ := json.Marshal(map[string]int{"test":1,"try":2}) fmt.Println(string(b)) } AI代码助手复制代码 输出: 三、map和struct互转 (1)map转struct 需要...
需求:有一个切片,其元素是不固定类型的结构体,如何转换为元素为map类型的切片。 以下例子是通过反射reflect的方法来完成这个转换过程。 packagemainimport("fmt""reflect")typeStudentstruct{Namestring`json:"name"`Ageuint`json:"age"`}typeTeacherstruct{Namestring`json:"name"`Genderuint`json:"gender"`}// ...
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++ { ...
funcstruct2map(vinterface{})map[string]interface{} { data, _ := json.Marshal(v) m :=make(map[string]interface{}) _ = json.Unmarshal(data, &m) returnm } 1.2 version-2 不指定struct直接转map // version-2 struct -> map typeUser2struct{ ...
1.map 转 struct map转struct有两种方式 1.是通过第三方包github.com/mitchellh/mapstructure 2.通过map转json,再通过json转struct 第三方包 mapstructure 下载依赖,通过第三方依赖进行转换 go gethttp://github.com/goinggo/mapstructure func TestMapToStructByMod(t *testing.T) { ...
Golang 使用struct作为map键在Golang中,map作为一种特殊的数据结构,可以用于存储一组键值对(key-value pairs)数据。一般情况下,map的键(key)可以是Golang中的任意一种基本数据类型。但是,在某些特殊情况下,我们也可以使用struct类型作为map的键。如何定义struct类型在使用struct类型作为map的键时,我们首先需要定义这个...
一、map, struct 互转 1.map 转 struct map 转struct 有两种方式 1.是通过第三方包 github.com/mitchellh/mapstructure 2.通过 map 转json,再通过 json 转struct 第三方包 mapstructure 下载依赖,通过第三方依赖进行转换 go get github.com/goinggo/mapstructure func TestMapToStructByMod(t *testing.T) { ...