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

无法从帖子请求中解析 JSON

无法从帖子请求中解析 JSON

Go
一只甜甜圈 2023-04-17 15:02:45
我构建了一个 echo 微服务 api,有两个路由:post 和 get。get 方法工作正常,但 get 方法无法解析 JSON,这意味着在 Bind() func 之后结构为空。这一定是我想念的一件非常愚蠢和微小的事情......有什么帮助吗?// main.go//--------------------------------------------------------------------func main() {    e := echo.New()    e.GET("/getmethod", func(c echo.Context) error { return c.JSON(200, "good")})    e.POST("/login", handlers.HandleLogin)    e.Start("localhost:8000")}// handlers/login.go//--------------------------------------------------------------------type credentials struct {    email string `json:"email"`    pass string `json:"pass"`}//--------------------------------------------------------------------func HandleLogin(c echo.Context) error {    var creds credentials    err := c.Bind(&creds)    if err != nil {        return c.JSON(http.StatusBadRequest, err) // 400    }    return c.JSON(http.StatusOK, creds.email) // 200}当使用邮递员运行发布请求时(确保:发布方法,url 是正确的路由,在 body> raw> JSON 格式下,我按预期发送 JSON)我收到返回状态 200 ok,但 json 为空,而我希望收到电子邮件属性。知道为什么 Bind() 没有正确提取字段吗?
查看完整描述

1 回答

?
慕后森

TA贡献1802条经验 获得超5个赞

您应该通过将每个首字母大写来导出凭证结构的字段,否则 json-package 不知道您有哪些字段:

type credentials struct {
    Email string `json:"email"`
    Pass string `json:"pass"`}


查看完整回答
反对 回复 2023-04-17
  • 1 回答
  • 0 关注
  • 82 浏览
慕课专栏
更多

添加回答

举报

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