您的位置 首页 知识分享

Gin.ShouldBind方法绑定参数为何只有第一个生效?

gin.shouldbind方法带来的困惑 在使用gin框架开发api时,开发者可能遇到在使用c.should…

Gin.ShouldBind方法绑定参数为何只有第一个生效?

gin.shouldbind方法带来的困惑

在使用gin框架开发api时,开发者可能遇到在使用c.shouldbind方法绑定表单参数时出现的问题。当多个c.shouldbind方法同时使用时,只有第一个绑定的参数能够获取值,后续绑定的参数将为空。

解决方案:使用c.shouldbindbodywith方法

为了解决这个问题,可以使用c.shouldbindbodywith(&param, binding.json)方法来绑定json数据。这个方法会将body缓存到上下文中,这样后续的绑定操作就可以直接从缓存中获取数据。

示例代码:

import "github.com/gin-gonic/gin/binding"  // ... 其他代码 ...  func (a Article) List(c *gin.Context) {     var (         appG     = app.Gin{C: c}         param    models.ListReqInfo         paramMap map[string]interface{}     )      if err := c.ShouldBindBodyWith(&param, binding.JSON); err != nil {         // 返回错误信息     }      if err := c.ShouldBind(&paramMap); err != nil {         // 返回错误信息     }      // ... 其他代码 ... }
登录后复制

通过使用c.shouldbindbodywith方法,可以确保无论调用c.shouldbind方法的顺序如何,绑定的参数都能获取到值。

以上就是Gin.ShouldBind方法绑定参数为何只有第一个生效?的详细内容,更多请关注php中文网其它相关文章!

本文来自网络,不代表甲倪知识立场,转载请注明出处:http://www.spjiani.cn/wp/4307.html

作者: nijia

发表评论

您的电子邮箱地址不会被公开。

联系我们

联系我们

0898-88881688

在线咨询: QQ交谈

邮箱: email@wangzhan.com

工作时间:周一至周五,9:00-17:30,节假日休息

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部