Gin学习(三)

数据解析与绑定



一、JSON数据解析与绑定

先创建一个数据结构体,使用ShouldBindJSON函数,注意传入参数是结构体的指针

func main() {
	engine := gin.Default()

	var Login Login
	engine.POST("/login", func(c *gin.Context) {
		if err := c.ShouldBindJSON(&Login); err != nil {
			fmt.Println(err.Error())
			return
		}

		//验证登录

	})

	engine.Run()
}

type Login struct {
	User     string `from:"username" json:"username"`
	Password string `from: "password" json:"password"`
}

二、表单数据解析

与JSON解析类似,使用的是Bind函数,传入参数依旧是指针,两个的代码看起来是只修改了函数名,主要原因是结构体的设计时已经将两种格式全部设计进去,所以看起来没什么区别。

func main() {
	engine := gin.Default()

	var Login Login
	engine.POST("/login", func(c *gin.Context) {
		if err := c.Bind(&Login); err != nil {
			fmt.Println(err.Error())
			return
		}

		//验证登录

	})

	engine.Run()
}

type Login struct {
	User     string `from:"username" json:"username"`
	Password string `from: "password" json:"password"`
}

三、URI参数解析与绑定

这里就可以明显看出来,结构体的变化,不同的函数对应不同的数据类型的结构体设计,其次这种数据绑定方式主要用于GET方法,因为GET方法可以在URI带入参数。

func main() {
	engine := gin.Default()

	var Login Login
	engine.GET("/login/:name/:password", func(c *gin.Context) {
		if err := c.ShouldBindUri(&Login); err != nil {
			fmt.Println(err.Error())
			return
		}

		//

	})

	engine.Run()
}

type Login struct {
	User     string `from:"username" json:"username" uri:"username"`
	Password string `from: "password" json:"password" uri: "password"`
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值