下面是一个示例代码,展示了如何将结构体转换为map: go package main import ( "fmt" "reflect" ) // 定义一个结构体 type Person struct { Name string Age int } // 将结构体转换为map func structToMap(obj interface{}) map[string]interface{} { val := reflect.ValueOf(obj) if val.Kind() =...
//结构体转map方法2func StructToMapViaJson(data S)map[string]interface{} { m := make(map[string]interface{}) //struct 转json j, _ := json.Marshal(data) //json 转mapjson.Unmarshal(j, &m)returnm } func FillStruct(datamap[string]interface{}, obj interface{}) error {fork, v :=ran...
接下来,我们创建一个将结构体转换为Map的函数: ```go 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++ { // 将结...
直接使用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.UseNumber()...
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...
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) ...
URL string `map:"url"` Star int `map:"star"` } type StructNoDive struct { NoDive int } type Profile struct { Experience string `map:"experience"` Date time.Time `map:"time"` } // its own toMap method func (p Profile) StructToMap() (key string, value interface{}) { ...
2. 合并 map 到 struct 接下来我们看另一个场景:我们有一个 map,需要将其内容合并到一个已有的 struct 中。这种需求在动态配置加载时特别常见。 funcmapToStruct(){ varm =make(map[string]interface{})m["name"] ="Tom"m["age"] =23m["email"] ="12...
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...
// 方法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) { // 通过反射将...