我正在使用 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"`
}
- 1 回答
- 0 关注
- 59 浏览
添加回答
举报
0/150
提交
取消