• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    gin 获取post请求的json body操作

    我就废话不多说了,大家还是直接看代码吧~

    代码如下

    type KDRespBody struct {
       Errcode int `json:"errcode"`
       Desc string `json:"description"`
       Data []services.KdSearchBack `json:"data"`
    }
    var reqInfo KDRespBody
    err := c.BindJSON(reqInfo)
    if err != nil {
       log.Info(err)
       c.JSON(200, gin.H{"errcode": 400, "description": "Post Data Err"})
       return
    } else {
      fmt.Println(reqInfo.Data)
    }
    

    补充:使用gin接受post的json数据

    第一种

    func Login(c *gin.Context) {
     json := make(map[string]interface{}) //注意该结构接受的内容
     c.BindJSON(json)
     log.Printf("%v",json)
     c.JSON(http.StatusOK, gin.H{
     "name": json["name"],
     "password": json["password"],
     })
    }

    第二种

    type User struct {
     Name string `json:"name"`
     Password int64 `json:"password"`
    }
    func Login(c *gin.Context) {
     json := User{}
     c.BindJSON(json)
     log.Printf("%v",json)
     c.JSON(http.StatusOK, gin.H{
     "name": json.Name,
     "password": json.Password,
     })
    }
    

    补充:golang json数据解析错误情况

    byte数组接收网络数据完网络数据后,需要根据接收到的长度进行重新分片,才能被json进行解析,不然会报错。

      for {
     len1, err := resp.Body.Read(data)
     if len1 > 0 {
     data1 := data[:len1] //需要根据接收到的长度进行重新分片
     err1 := json.Unmarshal(data1, rec_rep)
     if err1 != nil {
      fmt.Println("json.Unmarshal failed")
     }
     }
     if err != nil {
     break
     }
    }

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

    您可能感兴趣的文章:
    • js实现axios限制请求队列
    • JavaScript如何利用Promise控制并发请求个数
    • 利用js实现Ajax并发请求限制请求数量的示例代码
    • JS 实现请求调度器
    • PHP实现chrome表单请求数据转换为接口使用的json数据
    • JavaScript 中断请求几种方案详解
    上一篇:基于golang uint8、int8与byte的区别说明
    下一篇:golang 中的 nil的场景分析
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    gin 获取post请求的json body操作 gin,获取,post,请求,的,json,