登录
首页 >  Golang >  Go问答

GoLang Gin - 将所有标识符字段在从 POST 请求绑定 JSON 数据时重置为 0

来源:stackoverflow

时间:2024-02-12 20:51:24 252浏览 收藏

学习知识要善于思考,思考,再思考!今天golang学习网小编就给大家带来《GoLang Gin - 将所有标识符字段在从 POST 请求绑定 JSON 数据时重置为 0》,以下内容主要包含等知识点,如果你正在学习或准备学习Golang,就都不要错过本文啦~让我们一起来看看吧,能帮助到你就更好了!

问题内容

我正在使用 golang 迈出第一步,目前正在设置一个 api 服务器,它能够从 post 请求读取 json 文件并将其保存到内存中。

我有一个 json 文件如下:

[
    {
        "id": 0,
        "name": "kubernetes",
        "uri": "https://github.com/kubernetes/kubernetes"
    },
    {
        "id": 1,
        "name": "jenkins",
        "uri": "https://github.com/jenkinsci/jenkins"
    }
]

我正在 post:ing 到在本地端口上运行的 api 服务器。

这是我的 setuproutes() - 函数:

func setuproutes() {

    // initialize router
    router := gin.default()

    // initialize routes
    router.get("/api/projects", getprojects)
    router.get("/api/projects/:id", getprojectbyidentifier)
    router.post("/api/projects", uploadprojects)        

    // start the router
    router.run("localhost:8080")
}

这是我的 uploadprojects() - 函数:

// reads file from post request, and saves that to memory.
func uploadprojects(c *gin.context) {

    // initialize object
    var obj []project

    // bind json data to object
    c.bindjson(&obj)

    fmt.println(obj) // for testing: what is binded.

    // save data to memory
    proj = obj

}

这是项目结构:

type project struct {
    identifier int64    `json: id`
    name string         `json: name`
    uri string          `json: uri`
}

执行此操作后 - 我可以立即打印该数据,绑定什么,或者我可以使用 get /api/projects - 调用获取该数据,结果始终是:

[{0 kubernetes https://github.com/kubernetes/kubernetes} {0 jenkins https://github.com/jenkinsci/jenkins}]

我尝试过的:

  • 我尝试在结构体中的字符串、int 和 int64 类型的标识符字段之间进行交换。
  • google 搜索了一堆

这可能是非常简单的事情,但我真的不知道在哪里看这一点,所以任何帮助表示赞赏。


正确答案


id 字段与字段名称 identifier 不匹配。通过使用格式正确的 json 字段标签进行修复。 json 编解码器无法识别问题中使用的字段标签。

type Project struct {
    Identifier int64    `json:"id"`
    Name string         `json:"name"`
    Uri string          `json:"uri"`
}

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>