如何在golang自定义结构类型中绑定json字符串化数据?
js ajax
$.ajax({
type: "POST"
, url : url
, data : JSON.stringify('{"nowBlockPositionX":3,"nowBlockPositionY":0,"nowBlock":{"O":0}}')
})
转到自定义结构
type demo struct {
nowBlockPositionX int `form:"nowBlockPositionX" json:"nowBlockPositionX"`
NowBlockPositionY int `form:"nowBlockPositionY" json:"nowBlockPositionY"`
NowBlock map[string]int `form:"nowBlock" json:"nowBlock" query:"nowBlock"`
}
不要绑定这个
demo := new(demo)
if err := c.Bind(demo); err != nil {
c.Logger().Error(err)
}
答案 0 :(得分:1)
首先,修复demo
结构。结构中的字段需要导出。只需将每个字段的第一个字符更改为大写即可。
然后删除form:
和query:
标签。您只需要json:
标记。
type demo struct {
NowBlockPositionX int `json:"NowBlockPositionX"`
NowBlockPositionY int `json:"NowBlockPositionY"`
NowBlock map[string]int `json:"NowBlock"`
}
在您的JavaScript代码上,$.ajax
语句中也几乎没有出现问题。
执行以下两项操作:
application/json
。JSON.stringify()
。工作代码:
$.ajax({
url : url,
type: "POST",
dataType: "json",
contentType: "application/json",
data: '{"nowBlockPositionX":3,"nowBlockPositionY":0,"nowBlock":{"O":0}}'
})