我可以从父结构值进行条件验证吗?(https://github.com/go-playground/validator)

yhxst69z  于 2022-12-07  发布在  Go
关注(0)|答案(1)|浏览(96)

我尝试使用https://github.com/go-playground/validator进行验证。
我面临的问题是条件验证依赖于父结构值。
首先,验证可以做吗?如果不能,你能给予我一个提示,解决这些问题。

  • 谢谢-谢谢
type A struct {
  Enabled bool `json:"enabled" validate:"required"`
  Reason  struct {
        Note     string `json:"note" validate:"required_if=Enabled true"` // if parent's Enabled is true that struct will be required 
  } `json:"reason" validate:"required"`
}
b91juud3

b91juud31#

只要将Reason定义为指针就可以了。

type A struct {
  Enabled bool `json:"enabled" validate:"required"`
  Reason  *Reason `json:"reason" validate:"required_if=Enabled true"`
}

type Reason struct {
        Note     string `json:"note" validate:"required"` 
}

另一个道:您可以自定义验证https://pkg.go.dev/github.com/go-playground/validator/v10#hdr-Custom_Validation_Functions

相关问题