我正在使用 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/