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忽略大小写名称一致的字段。