如何从 Gin 中发布的 JSON 中获取特定参数?

我需要从发布的 json 中获取一个参数。我不想只为此创建结构。这是我尝试过的


type NewTask struct {

    Price uint64 `json:"price"`

}


func (pc TaskController) Create(c *gin.Context) {


    var service Service

    if err := c.BindJSON(&service); err != nil {

        log.Println(err) // this works

    }


    var u NewTask

    if err := c.BindJSON(&u); err != nil {

        log.Println(err) // this return EOF error

    }


    fmt.Println(u.Price)

}

请求的Json数据还有很多其他字段,包括价格


{

   ...other fields

   price: 30

}

但这不起作用。我认为这是因为我绑定了两次,我怎样才能成功绑定多个?


守着一只汪
浏览 169回答 1
1回答

精慕HU

尝试使用ShouldBindJSON. 正在读取正文,因此如果上下文正文被多次读取,BindJSON我们就会遇到这种情况。EOFShouldBindJSON将请求主体存储到上下文中,并在再次调用时重用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go