如何解决为什么Golang Go-Gin错误总是返回空对象
im试图解析gin golang中的错误验证,但产生一个空对象“ {}”
这是我的第一次尝试:
resp,err := userService.UserRegistrationService(c)
if err != nil {
c.JSON(http.StatusBadRequest,gin.H{"error": err})
return
}
返回:
{
"error": [
{},{}
]
}
这是我的第二次尝试:
resp,err := userService.UserRegistrationService(c)
if err != nil {
dada := fmt.Errorf("%v",err)
c.JSON(http.StatusBadRequest,dada)
return
}
返回
{}
看看我是否调试err参数:
resp,err := userService.UserRegistrationService(c)
fmt.Println(err)
if err != nil {
dada := fmt.Errorf("%v",err)
fmt.Println(dada)
c.JSON(http.StatusBadRequest,dada)
return
}
它的返回:
2020/11/10 12:41:46 stdout: Key: 'User.Email' Error:Field validation for 'Email' failed on the 'required' tag
2020/11/10 12:41:46 stdout: Key: 'User.Password' Error:Field validation for 'Password' failed on the 'required' tag
你们能帮我吗,尝试搜索仍然没有运气的任何地方,我想像这样返回:
{
"MyRequestStruct.PropertyOne": {
"FieldNamespace": "MyRequestStruct.PropertyOne","NameNamespace": "PropertyOne","Field": "PropertyOne","Name": "PropertyOne","Tag": "required","ActualTag": "required","Kind": 24,"Type": {},"Param": "","Value": ""
},"MyRequestStruct.PropertyTwo": {
"FieldNamespace": "MyRequestStruct.PropertyTwo","NameNamespace": "PropertyTwo","Field": "PropertyTwo","Name": "PropertyTwo","Value": ""
}
}
解决方法
在发布为err.Error()
的回复时,您应该尝试使用err
而不是json
。
尝试一下:
resp,err := userService.UserRegistrationService(c)
if err != nil {
c.JSON(http.StatusBadRequest,gin.H{"error": err.Error()})
return
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。