c++ new一个结构体_跟我一起学习go语言,结构体“字段验证”并输出自定义错误信息...

25fc244643c958c91b7d983cd84a789f.png

因为gopkg.in/go-playground/validator.v9 这个最新已经到了V9版本,而Gin引用的还是V8版本。但官方给的例子,如果进行验证,输出的信息都是诸如:

{ "message": "Key: 'LoginRequest.Mobile' Error:Field validation for 'Mobile' failed on the 'required' tagKey: 'LoginRequest.Code' Error:Field validation for 'Code' failed on the 'required' tag"}

不能作为正式环境的交互提示使用。

所以这里我们单独引用V9版本对我们的结构体字段进行验证,使其不依赖Gin框架,方便使用其他框架的用户参考使用。

首先利用Gin模型绑定,获取请求数据

这里定义的模型结构体

type User struct { Id int64 `json:"id"` Name string `json:"name" validate:"required"` User string `json:"user"` Password string `json:"password" validate:"required"` CreateTime int `json:"create_time"`} // 绑定字段 var user User // 获取结构体数据 c.ShouldBindJSON(&user)

实例化验证器进行验证

//先引入 import "gopkg.in/go-playground/validator.v9"

 validate := validator.New() err := validate.Struct(&user) errs := err.(validator.ValidationErrors) for _, e := range errs { fmt.Println(e.Field()) fmt.Println(e.ActualTag()) //这里根据获得的字段和规则,输出自定义的错误信息,比如“xxx不能为空”等 }

validator支持100多种规则,也支持自定义,感兴趣的可以动手试试。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值