gin解析json格式的数据出错

88 篇文章 0 订阅

好多天没有更博了。因为前几天家里出了点急事,回家了几天。奔丧去了。

回到公司一堆bug亟待解决。

写的接口给测试测试,现在还没有页面,直接测试接口。使用

c.BindJSON(&req)

总是报错,大致错误信息如下:

err="invalid character '-' in numeric literal"

这是由于我的接口要求将参数按照json格式传递到后台,结果测试同事使用了form-data格式,所以才会有上面这个错误。

============================补充2018-11-09 18:20:00=====================

刚刚又出现了这个EOF的问题,前端确定已经按照json格式传参,但是还是有这个问题。

通过wireshark抓包发现,前端给的Content-Length为0,说明没有将参数传入后台。

后来前端核查代码发现,确实是没有将参数传入,只是定义了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用Gin框架时,你可以通过以下步骤规定前端发送JSON格式数据给后端: 1. 在前端代码中确保要发送的数据是以JSON格式进行序列化。你可以使用`JSON.stringify()`方法将JavaScript对象转换为JSON字符串。 2. 在前端发送请求时,设置HTTP请求的Content-Type头部为`application/json`,以指示请求体中包含的是JSON数据。你可以使用`fetch()`或其他HTTP库发送请求。 3. 在Gin后端的路由处理函数中,使用`context.ShouldBindJSON()`方法来解析请求体中的JSON数据。这将自动将JSON数据绑定到Go结构体或map中,方便后续处理。 下面是一个示例代码片段,演示了如何在Gin中规定前端发送JSON格式数据给后端: ```go // 前端发送POST请求时,发送JSON格式数据 fetch('/api/users', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ name: 'John', age: 25 }) }); // Gin后端路由处理函数 type User struct { Name string `json:"name"` Age int `json:"age"` } func createUser(c *gin.Context) { var user User if err := c.ShouldBindJSON(&user); err != nil { c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) return } // 处理user对象... } ``` 在这个示例中,前端通过fetch发送了一个包含JSON数据的POST请求。后端使用`ShouldBindJSON()`方法将请求体中的JSON数据绑定到`User`结构体中,方便后续处理。如果解析失败,则返回错误信息。 通过以上步骤,你可以规定前端发送JSON格式数据Gin后端。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值