json - 如何将 ajax json 数据绑定到自定义结构类型?
问题描述
为什么不为我的自定义结构类型绑定 ajax json 数据?
我的环境:
- 戈朗
- 回声框架
去绑定函数
/**
* function : Model Init
*/
func modelInit(c echo.Context) tetrisModel.Tetris {
tetris := tetrisModel.DefaultInit()
if err := c.Bind(tetris); err != nil {
c.Logger().Error(err)
}
return *tetris
}
调用模型初始化
func Control(c echo.Context) tetrisModel.Tetris {
tetris := modelInit(c)
fmt.Println("=======================")
fmt.Println(c.FormValue("nowBlockPositionX"))
fmt.Println(tetris.NowBlockPositionX) // do not printing, why?
fmt.Println("=======================")
// ... ... other code... ...
}
结果:
fmt.Println(c.FormValue("nowBlockPositionX"))
> 工作
fmt.Println(tetris.NowBlockPositionX)
不工作/不打印,为什么?(不绑定)
我希望,此代码将打印“3”
默认初始化()
func DefaultInit() *Tetris {
tetris := new(Tetris)
// some default data setting...
return tetris
}
俄罗斯方块模型代码
type Tetris struct {
NowBlockPositionX int `form:"nowBlockPositionX" json:"nowBlockPositionX"`
NowBlockPositionY int `form:"nowBlockPositionY" json:"nowBlockPositionY"`
NowBlock map[string]int `form:"nowBlock" json:"nowBlock"`
// other data exists...
}
ajax json 数据(POST 类型)
{
nowBlockPositionX: 3
, nowBlockPositionY: 0
, nowBlock: {L: 0}
// other data exists...
}
我知道如果 go struct 类型有文字字符串(像这样 : form:"nowBlock" json:"nowBlock"
)然后结构自动绑定('绑定函数')。不是吗?
解决方案
推荐阅读
- flutter - 在 _CustomNavigatorState 中找不到路由 RouteSettings("/pomodoro", null) 的生成器
- java - 将第二个 .p12 导入密钥库后的 handshake_failure 和 UNKNOWN_CA
- swift - Flutter Desktop:Firebase Auth 找不到有效的 GoogleService-Info.plist
- python - 使用 make 和 Makefiles 从包含空格的文件路径中处理原始源数据
- c# - C# MongoDb - 如何更新嵌套文档中的一个字段?
- python - 计算分组数据帧的匹配计数频率和准确性
- flutter - 如何在有状态小部件中添加添加实现 PreferredSizeWidget
- android - 我们可以控制安卓手机的电源按钮吗?
- javascript - 在 WebStorm ESLint 中获取 ESLint 错误:在导入的模块中解析错误
- reactjs - 反应路由问题重定向