gpt4 book ai didi

Go gin 获取请求正文 json

转载 作者:行者123 更新时间:2023-12-01 20:08:37 25 4
gpt4 key购买 nike

我使用 postman 发布数据并在正文中放置一些简单的 json

请求正文

{
"order":"1",
"Name":"ts1"
}

我需要将数据传输到 json 并尝试如下,
而且我无法获得json,不知道缺少什么
router.POST("/user", func(c *gin.Context) {
var f interface{}
//value, _ := c.Request.GetBody()
//fmt.Print(value)

err2 := c.ShouldBindJSON(&f)
if err2 == nil {
err = client.Set("id", f, 0).Err()
if err != nil {
panic(err)
}

}

f 不是 json 并且我收到错误,知道如何使它工作吗?
错误是:
redis: can't marshal map[string]interface {} (implement encoding.BinaryMarshaler)

我用 https://github.com/go-redis/redis#quickstart

如果我删除正文并使用这样的硬编码代码,我可以设置数据, 它有效
json, err := json.Marshal(Orders{
order: "1",
Name: "tst",
})

client.Set("id", json, 0).Err()

最佳答案

如果只想将请求体 JSON 作为值传递给 Redis,则不需要将 JSON 绑定(bind)到值。直接从请求正文中读取原始 JSON 并将其传递:

jsonData, err := ioutil.ReadAll(c.Request.Body)
if err != nil {
// Handle error
}
err = client.Set("id", jsonData, 0).Err()

关于Go gin 获取请求正文 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61919830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com