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
 }
}

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

相关文章

  • 详解Go语言中切片的长度与容量的区别

    详解Go语言中切片的长度与容量的区别

    切片可以看成是数组的引用,切片的长度是它所包含的元素个数。切片的容量是从它的第一个元素到其底层数组元素末尾的个数。本文将通过示例详细讲讲Go语言中切片的长度与容量的区别,需要的可以参考一下
    2022-11-11
  • golang使用aes库实现加解密操作

    golang使用aes库实现加解密操作

    这篇文章主要介绍了golang使用aes库实现加解密操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • goland中npm无法使用的问题及解决

    goland中npm无法使用的问题及解决

    这篇文章主要介绍了goland中npm无法使用的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Golang读写Excel的方法教程

    Golang读写Excel的方法教程

    这篇文章主要给大家介绍了关于Golang读写Excel的方法教程,golang操作excel利用的是Excelize,Excelize是Golang编写的一个用来操作 Office Excel 文档类库,基于微软的Office OpenXML标准,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-05-05
  • 详解Go中指针的原理与引用

    详解Go中指针的原理与引用

    在 Go 中,指针是强大而重要的功能,它允许开发人员直接处理内存地址并实现高效的数据操作,本文主要带大家了解下指针在 Go 中的工作原理以及对于编写高效、高性能代码的重要性,希望对大家有所帮助
    2023-09-09
  • golang使用接口进行灵活缓存

    golang使用接口进行灵活缓存

    缓存是编程中一种常见的技术,通过存储昂贵的计算或 IO 结果来快速查找,从而提高性能,本文将介绍一下Go的接口如何帮助构建灵活、可扩展的缓存,感兴趣的可以了解下
    2023-09-09
  • golang利用pprof与go-torch如何做性能分析

    golang利用pprof与go-torch如何做性能分析

    这篇文章主要给大家介绍了关于golang利用pprof与go-torch如何做性能分析的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-07-07
  • go同步原语Phaser和Barrier区别

    go同步原语Phaser和Barrier区别

    这篇文章主要为大家介绍了通过java讲解go同步原语Phaser和Barrier区别,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • golang gin 框架 异步同步 goroutine 并发操作

    golang gin 框架 异步同步 goroutine 并发操作

    这篇文章主要介绍了golang gin 框架 异步同步 goroutine 并发操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • Go 语言入门之net/url 包

    Go 语言入门之net/url 包

    这篇文章主要介绍了Go 语言入门之net/url 包,文章基于GO语言的相关资料展开 net/url 包的详细内容,具有一定的的参考价值,需要的小伙伴可以参考一下
    2022-05-05

最新评论