2019-12-11

【菜鸟笔记】

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 实例失败
            }
})

你可能感兴趣的:(2019-12-11)