当前位置:网站首页>Go learning --- structure to map[string]interface{}
Go learning --- structure to map[string]interface{}
2022-07-06 00:15:00 【Duck boss】
One 、 The structure turns map[string]interface{} The type of question
package main
import (
"encoding/json"
"fmt"
)
// Define a structure
type User struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
user := User{
Name: " Xiao Wang ",
Age: 25,
}
m, _ := json.Marshal(&user)
var ma map[string]interface{}
json.Unmarshal(m,&ma)
for s, i := range ma {
fmt.Printf("s=%v i=%v i Of type:%T\n",s,i,i)
}
}
resolvent :
package main
import (
"fmt"
"reflect"
)
// Define a structure
type User struct {
Name string `json:"name"`
Age int `json:"age"`
}
func ToMap(in interface{},tagName string)(map[string]interface{},error) {
myMap := make(map[string]interface{})
v := reflect.ValueOf(in)
if v.Kind() == reflect.Ptr {
v = v.Elem()
}
if v.Kind() != reflect.Struct {
return nil,fmt.Errorf(" Type error ",v)
}
t := v.Type()
// Traverse structure fields
for i := 0; i < t.NumField(); i++ {
field := t.Field(i)
get := field.Tag.Get(tagName)
if get != "" {
myMap[get] = v.Field(i).Interface()
}
}
return myMap,nil
}
func main() {
user := User{
Name: " Xiao Wang ",
Age: 25,
}
toMap, _ := ToMap(&user, "json")
for s, i := range toMap {
fmt.Printf("s=%v i=%v i Of type:%T\n",s,i,i)
}
}
边栏推荐
- USB Interface USB protocol
- C # input how many cards are there in each of the four colors.
- 【DesignMode】组合模式(composite mode)
- Start from the bottom structure and learn the introduction of fpga---fifo IP core and its key parameters
- 多普勒效應(多普勒頻移)
- 18. (ArcGIS API for JS) ArcGIS API for JS point collection (sketchviewmodel)
- Hudi of data Lake (2): Hudi compilation
- JS can really prohibit constant modification this time!
- 提升工作效率工具:SQL批量生成工具思想
- My colleagues quietly told me that flying Book notification can still play like this
猜你喜欢
选择致敬持续奋斗背后的精神——对话威尔价值观【第四期】
FFT learning notes (I think it is detailed)
Initialiser votre vecteur & initialisateur avec une liste Introduction à la Liste
上门预约服务类的App功能详解
提升工作效率工具:SQL批量生成工具思想
18.(arcgis api for js篇)arcgis api for js点采集(SketchViewModel)
Hudi of data Lake (2): Hudi compilation
Key structure of ffmpeg -- AVCodecContext
openssl-1.0.2k版本升级openssl-1.1.1p
LeetCode 1189. Maximum number of "balloons"
随机推荐
[noi simulation] Anaid's tree (Mobius inversion, exponential generating function, Ehrlich sieve, virtual tree)
My colleagues quietly told me that flying Book notification can still play like this
时区的区别及go语言的time库
【在线聊天】原来微信小程序也能回复Facebook主页消息!
Single merchant v4.4 has the same original intention and strength!
[designmode] Decorator Pattern
Solve the problem of reading Chinese garbled code in sqlserver connection database
Cloudcompare & PCL point cloud randomly adds noise
Asynchronous task Whenall timeout - Async task WhenAll with timeout
[designmode] adapter pattern
Detailed explanation of APP functions of door-to-door appointment service
Upgrade openssl-1.1.1p for openssl-1.0.2k
Tools to improve work efficiency: the idea of SQL batch generation tools
转:未来,这样的组织才能扛住风险
[Luogu cf487e] tours (square tree) (tree chain dissection) (line segment tree)
N1 # if you work on a metauniverse product [metauniverse · interdisciplinary] Season 2 S2
Shardingsphere source code analysis
XML配置文件(DTD详细讲解)
传输层协议------UDP协议
Senparc.Weixin.Sample.MP源码剖析