type myType struct {
value int `json:"value"`
Name string `json:"name" validate:"required"`
URL string `json:"URL" validate:"required"`
args []otherType `json:"args" validate:"dive", "required"`
}
type otherType struct {
name string `validate:"required"`
origin string `validate:"required"`
}
err := paramsValidator.Validate(someInstantiationOfThisStruct)
你好!我对使用验证器的潜水功能有点困惑。验证程序的文档中没有这种特定的验证方案组合,我无法通过一点调整使其工作。
我只想在主结构中输入args数组,并验证两组otherType中的每一组。然而,我不太明白这是怎么发生的。
我对dive的理解不正确,它当然不起作用,因为验证器无法使用Validate((确定不正确的验证。
我做错了什么吗?通常,我应该如何评估和验证数组中的参数?
我想明白了。我真的很抱歉发布!我被难住了三十分钟,但解决办法并没有那么糟糕。
type myType struct {
value int `json:"value"`
Name string `json:"name" validate:"required"`
URL string `json:"URL" validate:"required"`
args []otherType `json:"args" validate:"dive", "required"`
}
type otherType struct {
name string `validate:"required"`
origin string `validate:"required"`
}
是更新后的代码。在";潜水;以及";所需";,我已经发布了读取的代码
`validate: "dive, required"
阅读障碍抱歉!:(
我来这里寻找答案,但解决方案对我不起作用。为了使用go操场/验证器验证嵌套结构,请添加dive。
因此,将以下代码添加到顶层的嵌套结构中
`validate:"required,dive,required"`
注意:添加时不带空格,还要确保字段是公开的(使用PascalCase(,以在导入结构时打包
type myType struct {
value int `json:"value"`
Name string `json:"name" validate:"required"`
URL string `json:"URL" validate:"required"`
Args []OtherType `json:"args" validate:"required,dive,required"`
}
type OtherType struct {
Name string `validate:"required"`
Origin string `validate:"required"`
}
注意:这个验证是根据我的用例进行的,我希望Args是必需的,也希望它暴露在其他包中。只是试图帮助其他来寻找与";潜水;未正确记录在围棋/操场文件中