基本 JSON 编码
json.Marshal
从 encoding/json
编码值 JSON 包。
参数是要编码的值。返回的值是一个字节数组,表示 JSON 编码的输入(成功时)和错误(失败时)。
decodedValue := []string{"foo", "bar"}
// encode the value
data, err := json.Marshal(decodedValue)
// check if the encoding is successful
if err != nil {
panic(err)
}
// print out the JSON-encoded string
// remember that data is a []byte
fmt.Println(string(data))
// "["foo","bar"]"
以下是内置数据类型编码的一些基本示例:
var data []byte
data, _ = json.Marshal(1)
fmt.Println(string(data))
// 1
data, _ = json.Marshal("1")
fmt.Println(string(data))
// "1"
data, _ = json.Marshal(true)
fmt.Println(string(data))
// true
data, _ = json.Marshal(map[string]int{"London": 18, "Rome": 30})
fmt.Println(string(data))
// {"London":18,"Rome":30}
编码简单变量有助于理解 JSON 编码在 Go 中的工作原理。但是,在现实世界中,你可能会编码存储在结构中的更复杂的数据 。