Avatar ·

如何在Go中发送JSON字符串的POST请求?

大家好!我最近开始学习Go,正在编写一个用于与外部API交互的小型REST客户端。我需要发送一个带有JSON格式请求体的POST请求,但我一直无法弄清楚如何正确实现。 我有一个数据结构,我将其序列化为JSON,并希望将其发送到服务器。以下是我尝试过的代码: ```go package main import ( "fmt" "net/http" "strings" ) type User struct { Name string `json:"name"` Email string `json:"email"` } func main() { user := User{Name: "伊万", Email: "ivan@example.com"} // 如何将其作为JSON在POST请求中发送? resp, err := http.Post("https://api.example.com/users", "application/json", strings.NewReader(user)) if err != nil { fmt.Println(err) } fmt.Println(resp) } ``` 我明白`strings.NewReader(user)`不起作用,因为它期望一个字符串而不是结构体。但如何正确地将结构体转换为JSON并发送?是否需要使用