Gin框架IndentedJSON函数未按预期工作问题求助
问题分析与解决
你代码里的核心问题是:成功返回响应时调用的是c.JSON(),而非c.IndentedJSON()——只有错误分支用了带缩进的JSON输出方法,正常返回的分支还是用的普通JSON序列化,所以浏览器里看到的正常响应没有格式化效果。
另外需要注意,错误分支处理完后要添加return语句,避免错误返回后代码继续执行到成功分支的响应逻辑,导致重复写入HTTP响应头,引发不必要的问题。
修正后的代码如下:
func main() { r := gin.Default() r.GET("/ping", func(c *gin.Context) { res, err := getOHLC("BTCUSDT", "1h") if err != nil { c.IndentedJSON(http.StatusInternalServerError, err) return // 终止后续代码执行,避免重复响应 } c.IndentedJSON(http.StatusOK, res) // 替换为带缩进的JSON输出方法 }) r.Run() // listen and serve on 0.0.0.0:8080 (for windows "localhost:8080") }
内容的提问来源于stack exchange,提问作者BitQueen
相关产品推荐
相关产品推荐

