为了账号安全,请及时绑定邮箱和手机立即绑定

使用验证器/潜水输入数组并在 go 中验证嵌套结构

使用验证器/潜水输入数组并在 go 中验证嵌套结构

Go
郎朗坤 2022-08-15 19:17:03
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()确定不正确的验证。我做错了什么特别的事情吗?一般来说,我应该如何计算和验证数组中的参数?
查看完整描述

2 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

我能够弄清楚。我很抱歉甚至发布!我被难住了三十分钟,但解决方案并不是特别糟糕。


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"


诵读困难对不起!:(


查看完整回答
反对 回复 2022-08-15
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

我在这里寻找答案,但解决方案对我不起作用。为了使用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文档中正确记录


查看完整回答
反对 回复 2022-08-15
  • 2 回答
  • 0 关注
  • 189 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号