Avatar ·

如何在Go中正确返回JSON:完整指南与示例

大家好!我刚开始学习Go,遇到了一个问题:需要编写一个简单的HTTP服务器,当GET请求访问/api/user时,返回包含用户数据的JSON。我了解到Go内置了encoding/json包,但不知道如何正确地将结构体序列化为JSON并在响应中发送。 我尝试了以下代码: ```go package main import ( "fmt" "net/http" ) type User struct { Name string Age int } func userHandler(w http.ResponseWriter, r *http.Request) { user := User{Name: "安娜", Age: 28} fmt.Fprintf(w, "%v", user) } func main() { http.HandleFunc("/api/user", userHandler) http.ListenAndServe(":8080", nil) } ``` 但响应返回的是类似`{安娜 28}`的内容,而不是`{"Name":"安娜","Age":28}`。如何正确地将结构体marshal为JSON并设置正确的Content-Type头?是否需要处理错误?如果希望字段名使用camelCase,例如