GetRawData()
封装,过滤数据,仅接收指定json键:
//传入上下文、泛型,传出error错误
func bind_json(c *gin.Context, obj any) (err error) {
//将获取到的raw原始参数赋值给body,丢弃error
body, _ := c.GetRawData()
//获取Hader,赋值给ContenType
ContentType := c.GetHeader("content-type")
switch ContentType {
case "application/json":
//使用json.Unmarshal()将传来的json字符串转为结构体,error结果返给err
err = json.Unmarshal(body, &obj)
//如果err不是空值,证明报错,return err,如果为空,不做处理
if err != nil {
return err
}
}
return nil
}
raw:
func _index_raw(c *gin.Context) {
//结构体
type User struct {
User string `json:"user"`
Age int `json:"age"`
}
//实例化结构体
var user User
//调用封装
err := bind_json(c, &user)
//处理报错
if err != nil {
fmt.Println(err.Error())
}
//控制台调试输出user检验数据
fmt.Println(user)
}
如果未接收到指定键值,返回该类型默认值
本人代码水平一般,如有错误请指正,感谢。
2024-09-27 12:07:51 回复
怎么收藏这篇文章?
2024-09-23 08:48:26 回复
不错不错,我喜欢看
2024-09-23 08:44:15 回复
不错不错,我喜欢看
2024-09-22 17:58:22 回复
博主真是太厉害了!!!