猿问

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

我知道有很多人遇到了同样的问题,但我仍然在这里。我很确定我的代码是正确的,但生成的结构仍然是空的。功能:


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 entity


import "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


jeck猫
浏览 69回答 1
1回答

慕森卡

此目录:https://datatracker.ietf.org/doc/html/rfc7159将 JSON 对象格式指定为:对象结构表示为围绕零个或多个名称/值对(或成员)的一对大括号。名称是字符串。每个名称后面都有一个冒号,将名称与值分隔开来。单个逗号将值与以下名称分隔开。对象中的名称应该是唯一的。object = begin-object [ member *( value-separator member ) ]               end-objectmember = string name-separator value因此,没有尾随逗号。删除输入中的最后一个逗号。
随时随地看视频慕课网APP

相关分类

Go
我要回答