Json渲染

  1. package main
  2. import (
  3. "net/http"
  4. "github.com/gin-gonic/gin"
  5. )
  6. func hellojson(c *gin.Context) {
  7. var hello struct {
  8. Id int //首字母必须大写,才可导出
  9. Msg string
  10. }
  11. hello.Id = 18
  12. hello.Msg = "hellojson"
  13. c.JSON(http.StatusOK, hello) //返回数据给浏览器
  14. }
  15. func main() {
  16. router := gin.Default() //定义默认路由
  17. router.GET("/json", hellojson) //访问/json,触发hellojson函数
  18. router.Run(":9090") //监听127.0.0.1:9090
  19. }

image.png

加xml渲染

要注意的是,xml比json多了结构体的定义,json是直接实例化。

  1. package main
  2. import (
  3. "net/http"
  4. "github.com/gin-gonic/gin"
  5. )
  6. func hellojson(c *gin.Context) {
  7. var msg struct {
  8. Id int //首字母必须大写,才可导出
  9. Msg string
  10. }
  11. msg.Id = 1
  12. msg.Msg = "hellojson"
  13. c.JSON(http.StatusOK, msg) //返回数据给浏览器
  14. }
  15. func helloxml(c *gin.Context) {
  16. type msgxml struct { //和json不同,xml这里要定义结构体类型
  17. Id int
  18. Msg string
  19. }
  20. var msg msgxml //实例化结构体
  21. msg.Id = 2
  22. msg.Msg = "helloxml"
  23. c.XML(http.StatusOK, msg)
  24. }
  25. func main() {
  26. router := gin.Default() //定义默认路由
  27. router.GET("/json", hellojson) //访问/json,触发hellojson函数
  28. router.GET("/xml", helloxml) //访问/xml,触发helloxml函数
  29. router.Run(":9090") //监听127.0.0.1:9090
  30. }

image.png

其他的比如yaml,protobuf等,都是一样的,只是在返回的时候,选择不同的方法即可:c.YAML,c.ProtoBuf。