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] ...
在Golang中,如何将一个结构体转成map? 本文介绍两种方法。第一种是是使用json包解析解码编码。第二种是使用反射,使用反射的效率比较高,代码在 我的Github仓库github.com/liangyaopei/struct_to_map 假设有下面的一个结构体 func newUser() User { name := "user" MyGithub := GithubPage{ URL: "https...
// 方法1:使用go中标准库里的json编码成[]byte,然后再解码到map里 //data, _ := json.Marshal(&User) //m := make(map[string]any) //json.Unmarshal(data, &m) // Struct2map 方法2:通过反射将struct转换成map func Struct2map(obj any) (data map[string]any, err error) { // 通过反射将...
funcReflectMethod(objinterface{})map[string]interface{} { t := reflect.TypeOf(obj) v := reflect.ValueOf(obj)vardata =make(map[string]interface{})fori :=0; i < t.NumField(); i++ { data[strings.ToLower(t.Field(i).Name)] = v.Field(i).Interface() }returndata } 使用第三方库 ...
package demo import ( "fmt" "reflect" "testing" "time" ) type CommonObj struct { Name string `persistence:"name"` Age int `persistence:"age"` LastUpdateTime time.Time `persistence:"lastUpdateTime"` score float64 `persistence:"-"` } func StructConvertMapByTag(obj interface{}, tagName st...
一、map与struct互转 实现map到struct的转换有两途径:一是借助第三方包github.com/mitchellh/mapstructure,二是将map转换为json,再由json转换为struct,操作繁琐。通过第三方库mapstructure进行转换更为高效,所需时间仅为61.757μs,优于通过json转换的方式,时间约为134.299μs。另一种转换方式是利用...
beforeMap := map[string]interface {}{ "id":"123", "user_name":"酒窝猪", "address":[]map[string]interface{}{{"address": "address01"}, {"address": "address02"}}, } var afterStruct =UserInfoVo{} before := time.Now() marshal, err := json.Marshal(beforeMap) if err!=nil{ fmt...
[golang]struct切片如何转换为map切片 需求:有一个切片,其元素是不固定类型的结构体,如何转换为元素为map类型的切片。 以下例子是通过反射reflect的方法来完成这个转换过程。 packagemainimport("fmt""reflect")typeStudentstruct{Namestring`json:"name"`Ageuint`json:"age"`}typeTeacherstruct{Namestring`json:"...
1. 合并 struct 到 map 有时候,我们需要将一个 struct 转换成 map,比如在处理 JSON 数据或者数据库操作时。Mergo 能够帮助我们轻松实现这一点。来看下面这个示例: packagemain import("fmt""github.com/imdario/mergo") typeStudentstruct{NamestringAgeintemailstrin...
StructToJsonDemo() } AI代码助手复制代码 输出: 二、json和map互转 (1)json转map例子: funcJsonToMapDemo(){ jsonStr :=` { "name": "jqw", "age": 18 } `varmapResultmap[string]interface{} err := json.Unmarshal([]byte(jsonStr), &mapResult)iferr !=nil{ ...