我在Go应用程序中使用validator.v9
,如果发生验证错误,我想将其转换为ValidationErrors
包中定义的validator.v9
。
// ValidationErrors is an array of FieldError's
// for use in custom error messages post validation.
type ValidationErrors []FieldError
这是一个简单的断言代码。 myError
是error
type errValidation struct {
error
}
func (e errValidation) MarshalJSON() ([]byte, error) {
outputBody := map[string]interface{}{}
myError := e.error
fmt.Println(reflect.TypeOf(e.error))
if _, ok := myError.(validator.ValidationErrors); ok {
fmt.Println("OK")
} else{
fmt.Println("cast fails")
}
// ....
}
转换始终失败。但是在调试器中,我看到该类型正确
我的代码怎么了?
e.error
的确切类型是errValidation
。