绑定来自 POST 请求的 JSON 数据将所有标识符字段重写为 0

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

我试过的:


我试图在我的结构中交换字符串、整数和 int64 类型的标识符字段。

用谷歌搜索一堆

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


莫回无
浏览 114回答 1
1回答

繁星coding

该id字段与字段名称不匹配Identifier。使用格式正确的 JSON 字段标记进行修复。JSON 编解码器无法识别问题中使用的字段标签。type Project struct {    Identifier int64    `json:"id"`    Name string         `json:"name"`    Uri string          `json:"uri"`}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go