如何在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,例如