我需要从发布的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数据还有许多其他字段,包括 price
{
...other fields
price: 30
}
但是这不起作用。我认为这是因为我绑定了两次,如何成功绑定多个?
谢谢
答案 0 :(得分:1)
尝试使用ShouldBindJSON
。 BindJSON
正在读取正文,因此如果上下文Body被多次读取,我们将处于EOF
。
ShouldBindJSON
将请求正文存储到上下文中,并在再次调用时重用。