Go語言中的encoding/json
包提供了方便的方法來將Go數(shù)據(jù)類型轉(zhuǎn)換為JSON格式的文本輸出。
其中最常用的函數(shù)是json.Marshal()
,它將一個(gè)Go數(shù)據(jù)類型轉(zhuǎn)換為JSON格式的[]byte切片。
func Marshal(v interface{}) ([]byte, error)
該函數(shù)的參數(shù)接收一個(gè)任意類型的參數(shù),返回值為轉(zhuǎn)換為JSON格式的[]byte切片和一個(gè)error類型的錯(cuò)誤信息。
如果轉(zhuǎn)換成功,則函數(shù)返回nil錯(cuò)誤。否則返回一個(gè)描述錯(cuò)誤的信息,例如無法解析某個(gè)對(duì)象或類型編碼不支持的錯(cuò)誤信息。
下面是一個(gè)將一個(gè)結(jié)構(gòu)體轉(zhuǎn)換為JSON格式的示例:
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
Address string `json:"address"`
}
func main() {
p := Person{"John", 30, "New York"}
b, err := json.Marshal(p)
if err != nil {
panic(err)
}
fmt.Println(string(b))
}
上述代碼中,我們定義了一個(gè)Person結(jié)構(gòu)體和一個(gè)示例對(duì)象p。然后使用json.Marshal函數(shù)將該結(jié)構(gòu)體轉(zhuǎn)換為JSON格式的[]byte切片,并打印輸出。
輸出結(jié)果如下:
{"name":"John","age":30,"address":"New York"}
可以看到,該函數(shù)輸出了包含了結(jié)構(gòu)體字段名及其值的JSON格式的文本。
上一篇html微信打賞代碼