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

NewDecoder(r.正文).解码(&admin) 返回空结构

NewDecoder(r.正文).解码(&admin) 返回空结构

Go
jeck猫 2022-09-12 15:45:53
我知道有很多人遇到了同样的问题,但我仍然在这里。我很确定我的代码是正确的,但生成的结构仍然是空的。功能:func PostAdminHandler(w http.ResponseWriter, r *http.Request) {    w.Header().Set("Content-type", "application/json")    var admin admin.Admin    json.NewDecoder(r.Body).Decode(&admin)    fmt.Println(admin)    _, err := PostAdmin(admin)    if err != nil {        http.Error(w, err.Error(), http.StatusInternalServerError)    }}控制台打印 :{     ObjectID("000000000000000000000000")}结构:package entityimport "go.mongodb.org/mongo-driver/bson/primitive"type Admin struct {    FirstName string    LastName  string    Email     string    Password  string    Role      string    Campus    primitive.ObjectID}路线:    adminRoute.HandleFunc("/admin", admin.PostAdminHandler).Methods("POST")我通过失眠发送的Json数据:{    "FirstName": "Jeanne",    "LastName": "Darc",    "Email": "jeanne.darc@rouen.fr",    "Password": "JeanneDarc2022",    "Role": "admin",    "Campus": "60d5a25ff4d722d3b77d1929",}错误我从解码器得到:invalid character '}' looking for beginning of object key string
查看完整描述

1 回答

?
慕森卡

TA贡献1806条经验 获得超8个赞

此目录:

https://datatracker.ietf.org/doc/html/rfc7159

将 JSON 对象格式指定为:

对象结构表示为围绕零个或多个名称/值对(或成员)的一对大括号
。名称是字符串
。每个名称后面都有一个冒号,将名称
与值分隔开来。单个逗号将值与以下
名称分隔开。对象中的名称应该是唯一的。

object = begin-object [ member *( value-separator member ) ]

               end-object


member = string name-separator value

因此,没有尾随逗号。


删除输入中的最后一个逗号。


查看完整回答
反对 回复 2022-09-12
  • 1 回答
  • 0 关注
  • 68 浏览
慕课专栏
更多

添加回答

举报

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