使用验证器/潜水输入数组并在 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 中的每一组。然而,我不太明白这应该如何发生。


我错误地理解潜水,它当然不起作用,因为验证者无法使用Verify()确定不正确的验证。


我做错了什么特别的事情吗?一般来说,我应该如何计算和验证数组中的参数?


郎朗坤
浏览 190回答 2
2回答

绝地无双

我能够弄清楚。我很抱歉甚至发布!我被难住了三十分钟,但解决方案并不是特别糟糕。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"诵读困难对不起!:(

哈士奇WWW

我在这里寻找答案,但解决方案对我不起作用。为了使用go-playground/验证器验证嵌套结构,请添加dive。因此,将以下代码添加到顶层的嵌套结构中`validate:"required,dive,required"`注意:添加不带空格,还要确保字段公开(使用PascalCase)以打包u导入结构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,并且还希望将其公开给其他软件包。只是试图帮助其他来搜索与“潜水”相同的问题的人没有在go/playground文档中正确记录
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go