英文:
nested json with go lang and gin-gonic
问题
我有一个 JSON 文件,我想用 Go 语言和 Gin-Gonic 进行服务。我可以像这样进行服务:
func main() {
r := gin.Default()
r.GET("/api/auth", func(c *gin.Context) {
jsonData := []byte(`[{
"date": "gAAAAABgupdG-1IDgOD1uqauANLdt4KC8yHazbPt5g==",
"hwid": "GyFfDNpk56WcKOCAgKqIr8ELI0nAhe2ZgjEdLr5UHblBXeS-5pl2YIunZHwrbQoZv6gtD-ORLAwSQu7futgRTZUr5sNXnkjGurT60EJGRHn_S",
"hwid_resets": "TljjFnU_QkmYgQw9bfqHlFXSw1uQPsznwSylQ8_awHoxOKoYaCEFPg==",
"id": "gAAAAABgupdGg6POUjVAUMazxKmsIB2D-gu5zRZWK2eaqJk-OMohG-JQL00hAD2SpEB-mnJYJChBGPQ==",
"key": "gAAAAABgupdGq_HbYNJWkl7btrZUrxdO3wlwS8_KWUh69EXwxmTiSsB_GynUVcxpbOOKSQmfR_FoRmgfwz6-LI3yp7D-VIY-X6B7DSl0nAK2s",
"notes": "gAAAAABgupdGSSMNcQXVFzyIbT8mdRan204BDkNLH-jCaVMMMQxbGBx0jej3_2hjSFpagBa5BNU1WqsIR1og-A==",
"total_logins": "gAAAAABgupdGEF_9XEIbHefOuNuvxypTh9orUKS0qC8Kbvql7xJw1wn8aT0wVGsFxVllJBFw==",
}]`)
c.Data(200, "application/json", jsonData)
})
}
但是我想使用 c.JSON
进行服务,但是我在使用它时遇到了问题,我尝试了以下代码:
r := gin.Default()
r.GET("/api/auth", func(c *gin.Context) {
jsonData := `[{
"date": "gAAAAABgupdG-1IDgOD1uqauANLdt4KC8yHazbPt5g==",
"hwid": "GyFfDNpk56WcKOCAgKqIr8ELI0nAhe2ZgjEdLr5UHblBXeS-5pl2YIunZHwrbQoZv6gtD-ORLAwSQu7futgRTZUr5sNXnkjGurT60EJGRHn_S",
"hwid_resets": "TljjFnU_QkmYgQw9bfqHlFXSw1uQPsznwSylQ8_awHoxOKoYaCEFPg==",
"id": "gAAAAABgupdGg6POUjVAUMazxKmsIB2D-gu5zRZWK2eaqJk-OMohG-JQL00hAD2SpEB-mnJYJChBGPQ==",
"key": "gAAAAABgupdGq_HbYNJWkl7btrZUrxdO3wlwS8_KWUh69EXwxmTiSsB_GynUVcxpbOOKSQmfR_FoRmgfwz6-LI3yp7D-VIY-X6B7DSl0nAK2s",
"notes": "gAAAAABgupdGSSMNcQXVFzyIbT8mdRan204BDkNLH-jCaVMMMQxbGBx0jej3_2hjSFpagBa5BNU1WqsIR1og-A==",
"total_logins": "gAAAAABgupdGEF_9XEIbHefOuNuvxypTh9orUKS0qC8Kbvql7xJw1wn8aT0wVGsFxVllJBFw==",
}]`
c.JSON(200, jsonData)
})
但是当我在浏览器中打开该路由时,我得到了以下结果:
"[{\n\t\t\t\"date\": \"gAAAAABgupdG-1IDgOD1uqauANLdt4KC8yHazbPt5g==\",\n\t\t\t\"hwid\": \"GyFfDNpk56WcKOCAgKqIr8ELI0nAhe2ZgjEdLr5UHblBXeS-5pl2YIunZHwrbQoZv6gtD-ORLAwSQu7futgRTZUr5sNXnkjGurT60EJGRHn_S\",\n\t\t\t\"hwid_resets\": \"TljjFnU_QkmYgQw9bfqHlFXSw1uQPsznwSylQ8_awHoxOKoYaCEFPg==\",\n\t\t\t\"id\": \"gAAAAABgupdGg6POUjVAUMazxKmsIB2D-gu5zRZWK2eaqJk-OMohG-JQL00hAD2SpEB-mnJYJChBGPQ==\",\n\t\t\t\"key\": \"gAAAAABgupdGq_HbYNJWkl7btrZUrxdO3wlwS8_KWUh69EXwxmTiSsB_GynUVcxpbOOKSQmfR_FoRmgfwz6-LI3yp7D-VIY-X6B7DSl0nAK2s\",\n\t\t\t\"notes\": \"gAAAAABgupdGSSMNcQXVFzyIbT8mdRan204BDkNLH-jCaVMMMQxbGBx0jej3_2hjSFpagBa5BNU1WqsIR1og-A==\",\n\t\t\t\"total_logins\": \"gAAAAABgupdGEF_9XEIbHefOuNuvxypTh9orUKS0qC8Kbvql7xJw1wn8aT0wVGsFxVllJBFw==\",\n\t\t}]"
很明显,这不是一个有效的 JSON。我刚刚完成了一个关于 Go 语言的课程,但它没有解释我想要做的事情,所以我来这里寻求帮助。提前感谢您的帮助!
英文:
I have a json which i want to serve with go lang and Gin-Gonic I'm able to serve it like this
func main() {
r := gin.Default()
r.GET("/api/auth", func(c *gin.Context) {
jsonData := []byte(`[{
"date": "gAAAAABgupdG-1IDgOD1uqauANLdt4KC8yHazbPt5g==",
"hwid": "GyFfDNpk56WcKOCAgKqIr8ELI0nAhe2ZgjEdLr5UHblBXeS-5pl2YIunZHwrbQoZv6gtD-ORLAwSQu7futgRTZUr5sNXnkjGurT60EJGRHn_S",
"hwid_resets": "TljjFnU_QkmYgQw9bfqHlFXSw1uQPsznwSylQ8_awHoxOKoYaCEFPg==",
"id": "gAAAAABgupdGg6POUjVAUMazxKmsIB2D-gu5zRZWK2eaqJk-OMohG-JQL00hAD2SpEB-mnJYJChBGPQ==",
"key": "gAAAAABgupdGq_HbYNJWkl7btrZUrxdO3wlwS8_KWUh69EXwxmTiSsB_GynUVcxpbOOKSQmfR_FoRmgfwz6-LI3yp7D-VIY-X6B7DSl0nAK2s",
"notes": "gAAAAABgupdGSSMNcQXVFzyIbT8mdRan204BDkNLH-jCaVMMMQxbGBx0jej3_2hjSFpagBa5BNU1WqsIR1og-A==",
"total_logins": "gAAAAABgupdGEF_9XEIbHefOuNuvxypTh9orUKS0qC8Kbvql7xJw1wn8aT0wVGsFxVllJBFw==",
}]`)
c.Data(200, "application/json", jsonData)
})
}
but i want to serve it with c.JSON i'm getting issues using it i'm trying something like this
r := gin.Default()
r.GET("/api/auth", func(c *gin.Context) {
jsonData := `[{
"date": "gAAAAABgupdG-1IDgOD1uqauANLdt4KC8yHazbPt5g==",
"hwid": "GyFfDNpk56WcKOCAgKqIr8ELI0nAhe2ZgjEdLr5UHblBXeS-5pl2YIunZHwrbQoZv6gtD-ORLAwSQu7futgRTZUr5sNXnkjGurT60EJGRHn_S",
"hwid_resets": "TljjFnU_QkmYgQw9bfqHlFXSw1uQPsznwSylQ8_awHoxOKoYaCEFPg==",
"id": "gAAAAABgupdGg6POUjVAUMazxKmsIB2D-gu5zRZWK2eaqJk-OMohG-JQL00hAD2SpEB-mnJYJChBGPQ==",
"key": "gAAAAABgupdGq_HbYNJWkl7btrZUrxdO3wlwS8_KWUh69EXwxmTiSsB_GynUVcxpbOOKSQmfR_FoRmgfwz6-LI3yp7D-VIY-X6B7DSl0nAK2s",
"notes": "gAAAAABgupdGSSMNcQXVFzyIbT8mdRan204BDkNLH-jCaVMMMQxbGBx0jej3_2hjSFpagBa5BNU1WqsIR1og-A==",
"total_logins": "gAAAAABgupdGEF_9XEIbHefOuNuvxypTh9orUKS0qC8Kbvql7xJw1wn8aT0wVGsFxVllJBFw==",
}]`
c.JSON(200, jsonData)
})
but when i open the route on my browser i get this
"[{\n\t\t\t\"date\": \"gAAAAABgupdG-1IDgOD1uqauANLdt4KC8yHazbPt5g==\",\n\t\t\t\"hwid\": \"GyFfDNpk56WcKOCAgKqIr8ELI0nAhe2ZgjEdLr5UHblBXeS-5pl2YIunZHwrbQoZv6gtD-ORLAwSQu7futgRTZUr5sNXnkjGurT60EJGRHn_S\",\n\t\t\t\"hwid_resets\": \"TljjFnU_QkmYgQw9bfqHlFXSw1uQPsznwSylQ8_awHoxOKoYaCEFPg==\",\n\t\t\t\"id\": \"gAAAAABgupdGg6POUjVAUMazxKmsIB2D-gu5zRZWK2eaqJk-OMohG-JQL00hAD2SpEB-mnJYJChBGPQ==\",\n\t\t\t\"key\": \"gAAAAABgupdGq_HbYNJWkl7btrZUrxdO3wlwS8_KWUh69EXwxmTiSsB_GynUVcxpbOOKSQmfR_FoRmgfwz6-LI3yp7D-VIY-X6B7DSl0nAK2s\",\n\t\t\t\"notes\": \"gAAAAABgupdGSSMNcQXVFzyIbT8mdRan204BDkNLH-jCaVMMMQxbGBx0jej3_2hjSFpagBa5BNU1WqsIR1og-A==\",\n\t\t\t\"total_logins\": \"gAAAAABgupdGEF_9XEIbHefOuNuvxypTh9orUKS0qC8Kbvql7xJw1wn8aT0wVGsFxVllJBFw==\",\n\t\t}]"
which clearly is not a valid json i'm new to go lang i finished a course which it doesn't explain what i want to do that's why i came here to ask thanks in advance
答案1
得分: 1
c.Data
将给定的字节原样写入,并将Content-Type
设置为application/json
,以便接收方知道如何解释数据。
c.JSON
首先将输入数据转换为JSON格式。在你的情况下,输入数据是一个字符串,所以它会被编组为一个JSON字符串。
英文:
c.Data
writes the given bytes verbatim, setting the Content-Type
to application/json
, so the receiver knows how to interpret data.
c.JSON
first converts the input data into JSON. In your case the input data is a string, so it is marshaled to convert to a JSON string.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论