【发布时间】:2019-11-01 23:54:41
【问题描述】:
我正在通过为 Web 服务器构建一个简单的 API 接口来学习 Go。当命中默认路由时,我想以 JSON 格式返回一条简单消息。
到目前为止,在线阅读,这是返回文字 JSON 字符串,并将其编码并发送给用户的最简单方法。
func GetDefault(c *gin.Context) {
jsonData := []byte(`{"msg":"this worked"}`)
var v interface{}
json.Unmarshal(jsonData, &v)
data := v.(map[string]interface{})
c.JSON(http.StatusOK,data)
}
这是最有效/最快的方法吗?
在 node.js 和 express 中,我会做类似的事情:
return res.status(200).json({"msg":"this worked"});
在 Go + Gin 中最好的方法是什么?
【问题讨论】:
-
c.JSON(http.StatusOK, map[string]string{"msg":"this worked"})更接近 node.js 示例。 -
@mkopriva 询问者已准备好 JSON 响应作为
string值。 -
@icza 我注意到,但是节点中的
{"msg":"this worked"}不是字符串文字,而是一个对象。所以我推断如果他们可以在节点中使用一个对象,为什么不能在 go 中使用地图? -
是的,不一定需要是字符串,示例 node.js 代码就是我的目标。无需使用预定义结构即可轻松构建的对象。
标签: json http go server go-gin