我想跳过特定字段的JSON文件中空数组的验证。下面是Book结构体定义,如果在json文件中未声明作者,则可以进行验证。另一方面,如果为作者定义了空数组,则会失败。是否可以使用现有标签实现此行为,或者我必须定义自定义验证器?
type Book struct {
Title string `json:"title" validate:"min=2"`
Authors `json:"authors" validate:"omitempty,min=1,dive,min=3"`
// ...
}
我正在使用 "github.com/go-playground/validator/v10" 包的验证器验证 Book 结构:
book := &Book{}
if err := json.Unmarshal(data, book); err != nil {
return nil, err
}
v := validator.New()
if err := v.Struct(book); err != nil {
return nil, err
}
工作内容:
{
"title": "A Book"
}
出错信息为:"键:'Book.Authors' 错误:'Authors' 字段上的'min'标签验证失败"
{
"title": "A Book",
"authors": []
}