validation - GoLang 验证器非必填字段返回错误

标签 validation go

我正在使用 GoLang Validator在结构上验证其字段。即使我没有添加 required 标签,它仍然表现得好像是必需的。

type Order struct {
    // ... other fields
    UserID string `json:"userId" validate:"uuid4"`
    // ... other fields
}

if err = validator.New().Struct(i); err != nil {
    return err
}

输出:用户 ID:未知错误

它不是必需的,因此该值为零值,但它仍然返回错误。我在这里做错了什么吗?

最佳答案

您应该添加 omitempty允许空值的验证器。 Try out the code below on Go playground .

    type Order struct {
        // ... other fields
        UserID string `json:"omitempty,userId" validate:"omitempty,uuid4"`
        // ... other fields
    }

    if err := validator.New().Struct(Order{}); err != nil {
        return err
    }

请注意,要将结构编码为 JSON,您还需要设置 omitempty 验证器,如果您希望允许空值...

关于validation - GoLang 验证器非必填字段返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72700980/

相关文章:

validation - MassTransit 3.2.1 - 验证

grails - 如何在Grails中使用自定义错误消息创建自定义验证器?

templates - Go 模板 : How do I access array item (arr[2]) in templates?

PHP,无法发送电子邮件

java - 检查枚举是否为 null 或为空

go - 运行Go程序虚拟内存的Linux嵌入式设备超出了物理内存,为什么?

regex - 转义字符串特殊字符以在 golang 正则表达式中使用

Golang多 WaitGroup 和计时器最终停止

go - 回溯到更专业的界面

同一页面上的 PHP 表单验证提前显示