主题
JSON 编解码与发送请求
1. JSON 编码(Marshal)
将 Go 结构体编码为 JSON 字符串:
go
type User struct {
Name string `json:"name"`
Age int `json:"age"`
}
user := User{Name: "Alice", Age: 30}
jsonData, err := json.Marshal(user)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(jsonData))
2. JSON 解码(Unmarshal)
将 JSON 字符串解码为 Go 结构体:
go
var user User
err := json.Unmarshal(jsonData, &user)
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", user)
3. 发送 JSON 请求
通过 http.Post
发送 JSON 数据:
go
resp, err := http.Post("https://api.example.com/users", "application/json", bytes.NewBuffer(jsonData))
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(body))
JSON 是 Web 数据交换的重要格式,Go 提供了强大的支持。