我正在使用 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/