我想跳过对特定字段的 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": []}
1 回答

12345678_0001
TA贡献1802条经验 获得超5个赞
这是因为您的 Authors 验证字符串是"omitempty,min=1,dive,min=3"
. 空切片的长度为 0,即 <1。
如果您将验证字符串替换为"omitempty,min=0,dive,min=3"
instead,它将通过。
- 1 回答
- 0 关注
- 122 浏览
添加回答
举报
0/150
提交
取消