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] ...
在Go语言中,将结构体(struct)转换为Map可以通过反射(Reflection)来实现。反射是Go语言的一个强大特性,允许程序在运行时检查、修改其变量和类型的属性。以下是实现将结构体转换为Map的详细步骤和代码示例: 步骤1: 创建一个Go语言的结构体实例 首先,我们定义一个结构体并创建一个其实例。例如,我们定义一个Person结构...
使用json模块 直接使用json.Marshal方法来强制转化struct。 参考代码: funcJSONMethod(contentinterface{})map[string]interface{} {varnamemap[string]interface{}ifmarshalContent, err := json.Marshal(content); err !=nil{ fmt.Println(err) }else{ d := json.NewDecoder(bytes.NewReader(marshalContent)) d...
我的Github仓库github.com/liangyaopei/struct_to_map 假设有下面的一个结构体 funcnewUser()User{name:="user"MyGithub:=GithubPage{URL:"https://github.com/liangyaopei",Star:1,}NoDive:=StructNoDive{NoDive:1}dateStr:="2020-07-21 12:00:00"date,_:=time.Parse(timeLayout,dateStr)profile:=...
1. 合并 struct 到 map 有时候,我们需要将一个 struct 转换成 map,比如在处理 JSON 数据或者数据库操作时。Mergo 能够帮助我们轻松实现这一点。来看下面这个示例: packagemain import("fmt""github.com/imdario/mergo") typeStudentstruct{NamestringAgeintemailstrin...
// 方法1:使用go中标准库里的json编码成[]byte,然后再解码到map里 //data, _ := json.Marshal(&User)//m := make(map[string]any) //json.Unmarshal(data, &m)//Struct2map方法2:通过反射将struct转换成mapfuncStruct2map(obj any) (datamap[string]any, err error) { ...
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 ...
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++ { ...
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) { ...
func Struct2Map(obj interface{}) map[string]interface{} { t := reflect.TypeOf(obj) v := reflect.ValueOf(obj) var data = make(map[string]interface{}) fori := 0; i < t.NumField(); i++ { data[t.Field(i).Name] = v.Field(i).Interface() ...