来自 PHP 我在这里是一个完全的 Golang 新手。我读了一个与我的非常相似的问题,但我的实现略有偏差。每当我使用以下代码进行解码时,变量 msg.Username 始终为空。Golang 不会在这里抛出错误,所以我知道我在这里遗漏了一些非常小的非常重要的东西,但我不知道它可能是什么。我会非常感谢任何帮助,当然我希望这是一个拳头到额头的顿悟。谢谢!//The JSON I'm posting to my local server is //{"company_domain":"example.com", "user_name":"testu","password":"testpw"}func Login(w http.ResponseWriter, req *http.Request) { type Message struct { CompanyDomain string Username string Password string } //decode var msg Message decoder := json.NewDecoder(req.Body) err := decoder.Decode(&msg) if err != nil { err.Error()) } w.Write([]byte(msg.Username))// <- This print statement always comes in blank authorize, err := models.VerifyAuth(msg.Username, msg.Password, msg.CompanyDomain, w) if err != nil { err.Error()) } ...
2 回答
牧羊人nacy
TA贡献1862条经验 获得超7个赞
标记您的结构字段,以便解码器知道如何将 json 键映射到您的结构。
type Message struct {
CompanyDomain string `json:"company_domain"`
Username string `json:"user_name"`
Password string `json:"password"`
}
LEATH
TA贡献1936条经验 获得超6个赞
你只需要添加json:"field_name"到你的结构中:
type Message struct {
CompanyDomain string `json:"company_domain"`
Username string `json:"user_name"`
Password string `json:"password"`
}
- 2 回答
- 0 关注
- 134 浏览
添加回答
举报
0/150
提交
取消