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

golang 中的 json 编组数组

golang 中的 json 编组数组

Go
扬帆大鱼 2023-05-04 17:14:31
我回来再次询问,如果你们认为我缺乏搜索但我已经做了几个小时但我仍然不明白为什么我在 Golang 中有一个这样的控制器:c3 := router.CreateNewControllerInstance("index", "/v4")c3.Post("/insertEmployee", insertEmployee)并使用Postman抛出这个 arraylist 请求,请求是这样的[{  "IDEmployee": "EMP4570787",  "IDBranch": "ALMST",  "IDJob": "PRG",  "name": "Mikey Ivanyushin",  "street": "1 Bashford Point",  "phone": "9745288064",  "join_date": "2008-09-18",  "status": "fulltime"},{  "IDEmployee": "EMP4570787",  "IDBranch": "ALMST",  "IDJob": "PRG",  "name": "Mikey Ivanyushin",  "street": "1 Bashford Point",  "phone": "9745288064",  "join_date": "2008-09-18",  "status": "fulltime"}]而且我还有 2 个像这样的结构type EmployeeRequest struct {    IDEmployee string `json: "id_employee"`    IDBranch   string `json: "id_branch"    `    IDJob      string `json: "id_job"   `    Name       string `json: "name" `    Street     string `json: "street"   `    Phone      string `json: "phone"    `    JoinDate   string `json: "join_date"    `    Status     string `json: "status"   `    Enabled int `json: "enabled"    `    Deleted int `json: "deletedstring"`}type ListEmployeeRequest struct {    ListEmployee []EmployeeRequest `json: "request"`}出于某种原因,问题从这里开始,当我尝试运行我的函数来读取我从 Postman 发送的 json 时这是我尝试运行的功能func insertEmployee(ctx context.Context) {    tempReq := services.ListEmployeeRequest{}    temp1 := ctx.ReadJSON(&tempReq.ListEmployee)    var err error    if err = ctx.ReadJSON(temp1); config.FancyHandleError(err) {        fmt.Println("err readjson ", err.Error())    }    parsing, errParsing := json.Marshal(temp1)        fmt.Println("", string(parsing))    fmt.Print("", errParsing)}问题出现在 if err = ctx.ReadJSON(temp1) 线上;config.FancyHandleError(err) 它告诉我 JSON 输入意外结束,当我从 Postman 发出请求时,我做错了什么吗?或者我输入了错误的验证码?有人可以告诉我下一步该怎么做才能读取我从邮递员那里抛出的 JSON 吗?感谢您的关注和帮助,非常喜欢<3
查看完整描述

2 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

您在这里有多个问题:

  1. 标签名称与 JSON 输入不匹配,例如id_employeevs IDEmployee

  2. 您的标签语法不正确,它在您运行时显示go vet,应该是json:"id_employee"

  3. 你不需要另一个List结构,如果你使用它,你的 json 应该是{"requests":[...]}. 相反,您可以反序列化一个切片:

var requests []EmployeeRequest

if err := json.Unmarshal([]byte(j), &requests); err != nil {

    log.Fatal(err)

}


查看完整回答
反对 回复 2023-05-04
?
胡子哥哥

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

type EmployeeRequest struct {

    IDEmployee string `json:"IDEmployee"`

    IDBranch   string `json:"IDBranch"`

    IDJob      string `json:"IDJob"`

    Name       string `json:"name"`

    Street     string `json:"street"`

    Phone      string `json:"phone"`

    JoinDate   string `json:"join_date"`

    Status     string `json:"status"`


    Enabled int `json:"enabled"`

    Deleted int `json:"deletedstring"`

}

一些 json 标签与字段不匹配。



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

添加回答

举报

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