【问题标题】:nested json with go lang and gin-gonic带有 go lang 和 gin-gonic 的嵌套 json
【发布时间】:2021-09-06 14:00:31
【问题描述】:

我有一个 json,我想用 go lang 和 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 我是新来的 lang 我完成了一门课程,但它没有解释我想做什么,这就是为什么我来这里提前问谢谢

【问题讨论】:

    标签: json api go


    【解决方案1】:

    c.Data 逐字写入给定字节,将Content-Type 设置为application/json,因此接收者知道如何解释数据。

    c.JSON 首先将输入数据转换为 JSON。在您的情况下,输入数据是一个字符串,因此它被编组以转换为 JSON 字符串。

    【讨论】:

    • 哦,所以我的实际程序真的走对了吗?
    • 如果你有你的 JSON 数据作为一个字符串,是的。
    猜你喜欢
    • 1970-01-01
    • 2017-08-03
    • 2021-02-28
    • 2017-07-04
    • 2021-02-26
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    • 2020-09-05
    相关资源
    最近更新 更多