使用Validator/Dive输入数组并验证go中的嵌套结构



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是必需的,也希望它暴露在其他包中。只是试图帮助其他来寻找与";潜水;未正确记录在围棋/操场文件中

相关内容

  • 没有找到相关文章

最新更新