• 欢迎访问周知博客,每周记录新知识
  • 祝各位学得开心!!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

go语言,ShouldBind与tag

未分类 admin 1年前 (2022-11-04) 410次浏览 0个评论

gin.ShouldBind
提交的是multipart/form-data 可以使用“from”tag 绑定
提交的是application/json 可以使用“json”tag 绑定
struct没有定义tag 默认使用 struct的成员名字 不区分大小写
——————–
所以当前端提交的表单name定义的是biz_id 而 golang代码定义的struct成员是BizID时,需要打上tag
form:”biz_id” json:”biz_id” 以兼容 form和json两种情况
===============
vue的axios.post 默认使用 application/json,名称不一致的情况需要打上json标签,不认form标签
jquery的post默认使用multipart/form-data,名称不一致的情况需要打上form标签,不认json标签

新的面试题:
str := “{\”deal_type\”:\”1\”}”
var postForm struct {
   DealType   string `form:”deal_type”`
}
json.Unmarshal([]byte(str), &postForm)
根据上面的代码,请问DealType的值取到什么,为什么?
答案:
这个DealType的值是空字符串。json.Unmarshal不认form标签,没有json标签的话只能解析和DealType忽略大小写名称一致的字段。

周知博客, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:go语言,ShouldBind与tag
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址