亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 gin gonic 返回文字 JSON 的最簡單方法

使用 gin gonic 返回文字 JSON 的最簡單方法

Go
翻閱古今 2023-06-26 16:43:28
我正在通過為 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 中執行此操作的最佳方法是什么?
查看完整描述

2 回答

?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

一種選擇是使用Context.Data()您提供要發送的數據(以及內容類型)的位置:

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值并且很大,則可以避免將其轉換為:[]byteContext.DataFromReader()

func GetDefault(c *gin.Context) {

? ? jsonStr := `{"msg":"this worked"}`


? ? c.DataFromReader(http.StatusOK,

? ? ? ? int64(len(jsonStr)), gin.MIMEJSON, strings.NewReader(jsonStr), nil)

}

如果您的 JSON 為io.Reader,例如 ,則此解決方案也適用os.File



查看完整回答
反對 回復 2023-06-26
?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

gin.H您可以在響應中使用該結構:

c.JSON(http.StatusOK, gin.H{"msg":"this worked"})


查看完整回答
反對 回復 2023-06-26
  • 2 回答
  • 0 關注
  • 242 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號