gin 获取post请求的json body操作

 更新时间:2021年03月15日 11:38:50   作者:风一样的男子1  
这篇文章主要介绍了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
 }
}

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

相关文章

  • golang实现各种情况的get请求操作

    golang实现各种情况的get请求操作

    这篇文章主要介绍了golang实现各种情况的get请求操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • Go语言里的new函数用法分析

    Go语言里的new函数用法分析

    这篇文章主要介绍了Go语言里的new函数用法,实例分析了new函数的功能及使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • golang coroutine 的等待与死锁用法

    golang coroutine 的等待与死锁用法

    这篇文章主要介绍了golang coroutine 的等待与死锁用法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-05-05
  • Golang最大递减数算法问题分析

    Golang最大递减数算法问题分析

    这篇文章主要介绍了Golang最大递减数算法问题分析,结合实例形式分析了Go语言数字遍历与运算相关操作技巧,需要的朋友可以参考下
    2017-01-01
  • 详解Golang中Channel的用法

    详解Golang中Channel的用法

    如果说goroutine是Go语言程序的并发体的话,那么channels则是它们之间的通信机制。这篇文章主要介绍Golang中Channel的用法,需要的朋友可以参考下
    2020-11-11
  • golang中snappy的使用场合实例详解

    golang中snappy的使用场合实例详解

    在java 和go语言 大字符传达的时候, 采用snappy 压缩 解压缩是最好的方案。下面这篇文章主要给大家介绍了关于golang中snappy使用场合的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。
    2017-12-12
  • Go语言实现选择法排序实例

    Go语言实现选择法排序实例

    这篇文章主要介绍了Go语言实现选择法排序的方法,实例分析了选择法排序的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • go并发实现素数筛的代码

    go并发实现素数筛的代码

    这篇文章主要介绍了go并发实现素数筛的代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • 自己动手用Golang实现约瑟夫环算法的示例

    自己动手用Golang实现约瑟夫环算法的示例

    这篇文章主要介绍了自己动手用Golang实现约瑟夫环算法的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Golang中如何对MySQL进行操作详解

    Golang中如何对MySQL进行操作详解

    这篇文章主要给大家介绍了关于在Golang中如何对MySQL进行操作的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用Golang具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03

最新评论