Один из вариантов - использовать 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
и имеют большой размер, вы можете избежать преобразования их в []byte
, если используете Context.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
.