为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
莫回无 2022-12-19 11:58:34
我正在使用 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 类型的标识符字段。用谷歌搜索一堆这可能是非常简单的事情,但我真的不知道在这一点上看哪里,所以任何帮助表示赞赏。
查看完整描述

1 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

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


type Project struct {

    Identifier int64    `json:"id"`

    Name string         `json:"name"`

    Uri string          `json:"uri"`

}


查看完整回答
反对 回复 2022-12-19
  • 1 回答
  • 0 关注
  • 59 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信