当前位置: > > > > 使用 gin gonic 返回文字 JSON 的最简单方法
来源:stackoverflow
2024-04-22 14:18:34
0浏览
收藏
各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题是《使用 gin gonic 返回文字 JSON 的最简单方法》,很明显是关于Golang的文章哈哈哈,其中内容主要会涉及到等等,如果能帮到你,觉得很不错的话,欢迎各位多多点评和分享!
问题内容
我正在通过为 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 中执行此操作的最佳方法是什么?
解决方案
您可以在响应中使用 gin.h
结构:
c.json(http.statusok, gin.h{"msg":"this worked"})
一种选择是使用 ,您可以在其中提供要发送的数据(以及内容类型):
func getdefault(c *gin.context) { jsondata := []byte(`{"msg":"this worked"}`) c.data(http.statusok, "application/json", jsondata) }
您还可以使用内容类型常量:
func getdefault(c *gin.context) { jsondata := []byte(`{"msg":"this worked"}`) c.data(http.statusok, gin.mimejson, jsondata) }
如果您的数据可用作 string
值并且很大,则可以在使用 时避免将其转换为 []byte
:
func GetDefault(c *gin.Context) { jsonStr := `{"msg":"this worked"}` c.DataFromReader(http.StatusOK, int64(len(jsonStr)), gin.MIMEJSON, strings.NewReader(jsonStr), nil) }
如果您的 json 为 ,例如。
今天关于《使用 gin gonic 返回文字 JSON 的最简单方法》的内容介绍就到此结束,如果有什么疑问或者建议,可以在公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!