欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

go json.marshal ret

錢多多2年前10瀏覽0評論

在 Go 語言中,json.Marshal 返回了一個 JSON 表示的 Go 值的 byte 數(shù)組。即,它可以將一個 Go 對象轉(zhuǎn)換成 JSON 格式的字符串。當(dāng)然,前提是該對象是能夠被轉(zhuǎn)換為 JSON 格式的。

type Person struct {
Name string `json:"name"`
Age  int    `json:"age"`
}
p := Person{Name: "Tom", Age: 20}
b, err := json.Marshal(p)
// b 的值為 [123 34 110 97 109 101 34 58 34 84 111 109 34 44 34 97 103 101 34 58 50 48 125]
// err 的值為 nil

以上是一個簡單的例子。我們可以看到,如果不出現(xiàn)異常,json.Marshal 返回的是 byte 類型的數(shù)組,我們可以通過將其轉(zhuǎn)換成字符串,得到 JSON 格式的字符串。

在使用過程中,我們常常會碰到一些問題,例如:轉(zhuǎn)換后的 JSON 字符串的 key 不符合我們的要求,我們需要將它轉(zhuǎn)換成我們期望的 key。這時我們可以在結(jié)構(gòu)體中為每個字段指定一個 tag,來控制轉(zhuǎn)換后的 key。

type Person struct {
Name string `json:"name"`
Age  int    `json:"age"`
}
p := Person{Name: "Tom", Age: 20}
// 沒有指定 tag 時
// b 的值為 [123 34 78 97 109 101 34 58 34 84 111 109 34 44 34 97 103 101 34 58 50 48 125]
// 指定 tag 后
// b 的值為 [123 34 110 97 109 101 34 58 34 84 111 109 34 44 34 97 103 101 34 58 50 48 125]
b, err := json.Marshal(p)

總而言之,json.Marshal 在將 Go 對象轉(zhuǎn)換為 JSON 格式時,可以幫助我們輕松快捷地完成這項工作。但我們需要注意它的返回值類型以及數(shù)據(jù)格式和結(jié)構(gòu)體 tag 的使用。