JSON响应:返回嵌套的JSON

3
我将尝试返回一个类似这样的JSON响应:
```json { "name": "John", "age": 30, "city": "New York" } ```
以上内容与IT技术相关。
c.JSON(http.StatusOK, gin.H{"data": resp, "code": http.StatusOK, "status": "success"})

resp包含从数据库表(struct)获取的数据,我已将其转换为JSON。

我需要以以下格式返回data键中的响应:

data["result"] = resp

示例响应应如下所示:

{
"data": {"result" : ["This is a sample response"]}
}

响应可以是一个对象或对象列表。这是Python格式,我如何在Go中实现?


我认为应该使用map而不是struct,在Python术语中被称为字典。 - jizhihaoSAMA
我不确定在这里使用哪个,map还是struct。实际的resp包含了我使用Gorm从数据库表中检索到的数据。你能否提供一个例子给我?我只是在4-5天前开始使用Go语言。 - Ankita Gupta
1个回答

7
您可以在 gin 的源代码中看到它:
type H map[string]interface{}

因此,您可以使用(嵌套的gin.H):

c.JSON(http.StatusOK, gin.H{"data": 
        gin.H{
            "result": []string{"This is a sample response"},
        },
        "code": http.StatusOK, 
        "status": "success",
    })

1
谢谢您,使用嵌套的 gin.H 轻松解决了我的问题。我曾经担心每次返回都必须使用强类型,真是太烦了。 - Shino Lex
@ShinoLex 这是静态语言(如Go)中常见的问题。因此,当你尝试从 interface{} 中读取时,可能需要使用类型断言。 - jizhihaoSAMA

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接