为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 NewDecode、Golang 和 req *http.Request

如何使用 NewDecode、Golang 和 req *http.Request

Go
慕慕森 2021-11-22 18:42:10
来自 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"`

}


查看完整回答
反对 回复 2021-11-22
?
LEATH

TA贡献1936条经验 获得超6个赞

你只需要添加json:"field_name"到你的结构中:


type Message struct {

    CompanyDomain string `json:"company_domain"`

    Username      string `json:"user_name"`

    Password      string `json:"password"`

}


查看完整回答
反对 回复 2021-11-22
  • 2 回答
  • 0 关注
  • 134 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信