【菜鸟笔记】
gin 获取post参数
第一种
router.POST("/add", func(c *gin.Context) {
data, _ := ioutil.ReadAll(c.Request.Body) // io/ioutil
jsonstr := string(data) // 将byte[] 转 string
var kmap map[string]interface{}
err := json.Unmarshal([]byte(jsonstr), &kmap)
if err != nil {
println(err)
}
kmap //就是一个json对象
})
第二种
router.POST("/add", func(c *gin.Context) {
data, _ := ioutil.ReadAll(c.Request.Body) // io/ioutil
jsonstr := string(data) // 将byte[] 转 string
var us User
err := json.Unmarshal([]byte(jsonstr), &us)
if err != nil {
println(err)
}
us //就是User的一个实例
})
第三周
############################################################
type User struct {
Name string `json:"name"`
...
}
如果声明了json 那么就可以用json绑定User实例 类似的 用xml、yaml也是一样 还有form
#############################################
router.POST("/add", func(c *gin.Context) {
var us User
if c.ShouldBind(&us) == nil {
us //就是User的一个实例
} else {
//绑定生成User 实例失败
}
})