我正在为一个项目用 Go 语言编写服务器,其中涉及从客户端接收 JSON 数据并发回 JSON 响应。当我运行代码时,我发出的任何请求都可以正常工作,但响应始终为空。这是我的服务器的代码。
type AddPlayerData struct {
name string
}
func main() {
router := mux.NewRouter()
router.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Println("[ SUCCESS ] Request from ", r.RemoteAddr)
decoder := json.NewDecoder(r.Body)
var data AddPlayerData
err := decoder.Decode(&data)
if err != nil {
panic(err)
}
defer r.Body.Close()
json.NewEncoder(w).Encode(data)
}).Methods("PUT");
log.Fatal(http.ListenAndServe(":8080", router))
}
我发送的请求是 PUT 请求,格式如下:
{
"name": "test-player"
}
我正在收到回复,但它始终是空的。
最佳答案
这里的问题是你的 json 编码。 AddPlayerData
结构应该导出它的字段以便 json 解码器/编码器工作。
修改你的结构到下面
type AddPlayerData struct {
Name string `json:"name"`
}
关于json - 为什么我的 Go 服务器不能正确解码从客户端发送的 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50459159/