ica*_*tan 4 validation json go
我想跳过对特定字段的 json 文件中的空数组的验证。下面您可以看到 Book 结构定义,如果 json 文件中没有声明作者,则可以验证该定义。另一方面,如果为作者定义了空数组,则会失败。是否可以使用现有标签实现此行为,或者我是否必须定义自定义验证器?
type Book struct {
Title string `json:"title" validate:"min=2"`
Authors `json:"authors" validate:"omitempty,min=1,dive,min=3"`
// ...
}
Run Code Online (Sandbox Code Playgroud)
我通过“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
}
Run Code Online (Sandbox Code Playgroud)
作品:
{
"title": "A Book"
}
Run Code Online (Sandbox Code Playgroud)
失败并显示“密钥:‘Book.Authors’错误:‘Min’标签上‘Authors’的字段验证失败”
{
"title": "A Book",
"authors": []
}
Run Code Online (Sandbox Code Playgroud)
小智 6
这是因为您的作者验证字符串是"omitempty,min=1,dive,min=3". 空切片的长度为0,即<1。
如果你用相反的方式替换验证字符串"omitempty,min=0,dive,min=3",它就会通过。
| 归档时间: |
|
| 查看次数: |
2998 次 |
| 最近记录: |