以json的形式返回error,同时支持自定义错误消息msg。
func GetError(err error, r interface{}) map[string]interface{} {
errs := err.(validator.ValidationErrors)
s := reflect.TypeOf(r)
for _, fieldError := range errs {
filed, _ := s.FieldByName(fieldError.Field())
errTag := fieldError.Tag() + "_msg"
// 获取对应binding得错误消息
errTagText := filed.Tag.Get(errTag)
// 获取统一错误消息
errText := filed.Tag.Get("msg")
errMap := map[string]interface{}{}
if errTagText != "" {
errMap[fieldError.Field()] = errTagText
return errMap
}
if errText != "" {
errMap[fieldError.Field()] = errText
return errMap
}
errMap[fieldError.Field()] = fieldError.Tag()
return errMap
}
return nil
}
标签:errMap,return,自定义,errTagText,Field,Tag,fieldError,gin,validate
From: https://blog.csdn.net/zhtsuc/article/details/141328631