Parallax
Parallax

Reputation: 13

nested json with go lang and gin-gonic

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

Upvotes: 0

Views: 369

Answers (1)

Burak Serdar
Burak Serdar

Reputation: 51467

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.

Upvotes: 1

Related Questions