Go-gin拦截请求体

标签 go go-gin

我正在使用 go-gin 作为服务器并尝试解码请求正文。当我发送同时包含两个字符串的请求时

{
    "name": "abc"
}

以下代码正确解码:

var decodedBody map[string]string
err = json.NewDecoder(c.Request.Body).Decode(&decodedBody)

但是如果我发送

{
    "id": 1
}

下面的代码给我一张空白 map

var decodedBody map[string]int
err = json.NewDecoder(c.Request.Body).Decode(&decodedBody)

不确定我在这里错过了什么。有什么指点吗?

最佳答案

因为你设置decodeBody的数据类型为字符串,如果你的值不是字符串值,它不会解码正确的值,{"id":1},它的值类型是int,不是字符串。

关于Go-gin拦截请求体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40549132/

相关文章:

vue.js - 刷新gin-gonic中的静态文件

JSON 响应 : return nested JSON

go - 如何从 go *gin.context 对象中获取所有查询参数

go - gorilla cookie session 会持续服务器重建吗?

ubuntu - "go get collidermain"时 golang.org/x/net/websocket 出错 --- 在 Ubuntu 14.04 服务器上部署 AppRTC

go - 递归打印树状结构的完整列表时遇到一些问题

json - Golang/Gin-gonic : Force POST headers to JSON

go - 有没有办法关闭 golang/gin 中的客户端请求?

go - 一个案例可以同时执行多个案例吗?

json - GoLang JSON解码