package main import ( "github.com/gin-gonic/gin" "log" "net/http" ) type Info struct { Name string `json:"name"` // 结构标签是的名称是 http 发送请求的时候的 key 的名字, 要和这个结构标签相同才能获取到 Age int64 `json:"age"` } func main() { r := gin.Default() // 路由组,把共同给路由前缀提取出来 // 用户路由组 usergroup := r.Group("/user") usergroup.GET("/hello", func(c *gin.Context) { c.JSON(http.StatusOK,gin.H{ "message":"hello", }) }) // go gin 如何获取 http 请求 json 数据呢? 下面这个貌似 404, 这个是表单可以的吧。 usergroup.POST("/info", func(c *gin.Context) { name := c.GetString("name") age := c.GetString("age") c.JSON(http.StatusOK,gin.H{ "Name":name, "Age":age, }) }) usergroup.POST("/test", func(c *gin.Context) { var info Info //err := c.ShouldBind(&info) 这个获取不到数据,请求是json数据,应该用 ShouldBindJSON ,换了下面的方法,ok l err := c.ShouldBindJSON(&info) if err !=nil { c.JSON(http.StatusInternalServerError, gin.H{ "err": err.Error(), }) } else { log.Println("---info---:",info) c.JSON(http.StatusOK,gin.H{ "Name":info.Name, "Age":info.Age, }) } }) // 学生路由组 studentgroup := r.Group("/student") studentgroup.GET("/info", func(c *gin.Context) { c.JSON(http.StatusOK,gin.H{ "message":"ok", }) }) r.Run(":8888") }