色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

golang json map轉(zhuǎn)為結(jié)構(gòu)圖

在Golang開發(fā)中,JSON是一種非常常見的數(shù)據(jù)格式,而JSON數(shù)據(jù)最常見的存儲(chǔ)格式是map。將JSON格式的map轉(zhuǎn)換成對應(yīng)的結(jié)構(gòu)體對象是非常常見的操作,使用Golang內(nèi)置的encoding/json包能夠?qū)崿F(xiàn)這一操作,下面我們來了解如何將JSON格式的map轉(zhuǎn)為Golang結(jié)構(gòu)體。

下面使用如下JSON數(shù)據(jù):

{
"name": "Tom",
"age": 20,
"languages": [
"Java",
"Golang",
"Python"
]
}

定義一個(gè)對應(yīng)的結(jié)構(gòu)體:

type User struct {
Name      string   `json:"name"`
Age       int      `json:"age"`
Languages []string `json:"languages"`
}

轉(zhuǎn)換JSON格式的map:

func main() {
jsonMap := map[string]interface{}{
"name": "Tom",
"age": 20,
"languages": []interface{}{
"Java",
"Golang",
"Python",
},
}
jsonData, err := json.Marshal(jsonMap)
if err != nil {
fmt.Println(err.Error())
return
}
user := User{}
err = json.Unmarshal(jsonData, &user)
if err != nil {
fmt.Println(err.Error())
return
}
fmt.Printf("%+v", user)
}

執(zhí)行以上代碼,輸出結(jié)果:

{("Tom", 20, ["Java", "Golang", "Python"])}

我們可以看到,成功將JSON格式的map轉(zhuǎn)為了對應(yīng)的結(jié)構(gòu)體對象。