![39fa083765eb3fc2f66b88be7b545efa.png](https://i-blog.csdnimg.cn/blog_migrate/f539c4e4781b8a811026915be5a8fc4f.jpeg)
gin 数据解析和绑定
1 Json 数据解析和绑定
- 客户端传参,后端接收并解析到结构体
package main
import (
"fmt"
"github.com/gin-gonic/gin"
"net/http"
)
//定义接收数据的结构体
type Login struct {
//binding:"required"修饰的字段,若接收为空值,则报错,是必须字段
User string `form:"username" json:"user" uri:"user" xml:"user" binding:"required"`
Pssword string `form:"password" json:"password" uri:"password" xml:"password" binding:"required"`
}
func main() {
// 1.创建路由
// 默认使用了2个中间件Logger(), Recovery()
r := gin.Default()
//Json绑定
r.POST("loginJson", func(c *gin.Context) {
//声明接收的变量
var json Login
// 将request的body中的数据,自动按照json格式解析到结构体
if err := c.ShouldBindJSON(&json); err != nil {
// 返回错误信息
// gin.H封装了生成json数据的工具
c.JSON(http.StatusBadRequest, gin.H{