问题:我正在使用GORM和Gin创建RESTful API。我试图用BindJSON将JSON请求的主体绑定到模型,但是模型包含一个导致错误的字节片段。如何在不将数据类型更改为string的情况下将主体绑定到模型?
型号:
type User struct {
Password []byte `json:"password" binding:"required"`
}请求机构:
{
"password": "mypassword"
}主计长:
r.PUT("/user", func(c *gin.Context) {
var user User
err := c.BindJSON(&user)
if err != nil {
fmt.Println(err)
return
}
})Error:输入字节12处的非法base64数据
当Gin试图将string (来自JSON主体)绑定到[]byte (来自模型)并失败时,就会出现此错误。
解决方案,我不喜欢:我知道解决方案可能是创建一个不同的结构,并将Password类型为string,如下所示,并将其添加到控制器中,以便BindJSON正常工作:
type user struct {
Password string `json:"password" binding:"required"`
}这个解决方案没有反映我的模型,我需要添加额外的代码。如何调整我的模型/上下文绑定?
发布于 2022-11-30 19:17:42
传递base64编码的字符串工作
https://stackoverflow.com/questions/73693382
复制相似问题