首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么golang go-gin错误总是返回空对象

为什么golang go-gin错误总是返回空对象
EN

Stack Overflow用户
提问于 2020-11-10 13:46:59
回答 1查看 192关注 0票数 0

我正在尝试解析gin golang中的错误验证,但生成了一个空对象"{}“

这是我的第一次尝试:

代码语言:javascript
复制
resp, err := userService.UserRegistrationService(c)

if err != nil {
    c.JSON(http.StatusBadRequest, gin.H{"error": err})
    return
}

正在返回:

代码语言:javascript
复制
{
    "error": [
        {},
        {}
    ]
}

这是我的第二次尝试:

代码语言:javascript
复制
resp, err := userService.UserRegistrationService(c)

if err != nil {
    dada := fmt.Errorf("%v", err)
    c.JSON(http.StatusBadRequest, dada)
    return
}

返回

代码语言:javascript
复制
{}

如果我调试err参数,请看一下:

代码语言:javascript
复制
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
    }

它的回报:

代码语言:javascript
复制
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

你们能帮我吗,试着在任何地方都找不到,我想这样返回:

代码语言:javascript
复制
{
    "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",
        "Tag": "required",
        "ActualTag": "required",
        "Kind": 24,
        "Type": {},
        "Param": "",
        "Value": ""
    }
}
EN

回答 1

Stack Overflow用户

发布于 2020-11-10 13:52:34

在作为json响应发布时,您应该尝试使用err.Error()而不是err

试试这个:

代码语言:javascript
复制
resp, err := userService.UserRegistrationService(c)

if err != nil {
    c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
    return
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64763532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档