0
点赞
收藏
分享

微信扫一扫

gin框架02--json渲染


gin框架02--json渲染

  • ​​介绍​​
  • ​​json 渲染案例​​
  • ​​注意事项​​
  • ​​说明​​

介绍

Gin 框架对json支持的较晚上,开发人员可以按需选择多种 json 格式返回。
使用 AsciiJSON 生成具有转义的非 ASCII 字符的 ASCII-only JSON, 使用 PureJSON 输出纯json且不会转码,使用 IndentedJSON 输出可以缩进的 json信息。更多详细内容可以在 ​​​context.go​​ 中寻找答案。

json 渲染案例

案例:

package main

import (
"github.com/gin-gonic/gin"
"net/http"
)

type user struct {
ID int `json:"id"`
Name string `json:"name"`
Age int `json:"age"`
}

func main() {
r := gin.Default()
r.GET("/someJson", func(c *gin.Context) {
data := map[string]interface{}{
"lang": "GO语言",
"tag": "<br>",
}
c.AsciiJSON(http.StatusOK, data)
})

r.GET("/pureJson", func(c *gin.Context) {
c.PureJSON(200, gin.H{
"message": "<b> Hello, World!</b>",
})
})

r.GET("/indentJson", func(c *gin.Context) {
users := []user{{ID: 123, Name: "张三", Age: 23}, {ID: 124, Name: "李四", Age: 24}}
c.IndentedJSON(200, users)
})

r.Run(":8080")
}

测试:

AsciiJSON 输出
$ curl http://127.0.0.1:8080/someJson
{"lang":"GO\u8bed\u8a00","tag":"\u003cbr\u003e"}

PureJSON 输出
$ curl http://127.0.0.1:8080/pureJson
{"message":"<b> Hello, World!</b>"}

IndentedJSON 输出
$ curl http://127.0.0.1:8080/indentJson
[
{
"id": 123,
"name": "张三",
"age": 23
},
{
"id": 124,
"name": "李四",
"age": 24
}
]

注意事项

  1. 除了上述 AsciiJSON、IndentedJSON 和 PureJSON 外, 还有 JSON、XML、YAML、ProtoBuf、String 等。详细内容可参考​​context.go​​

说明

​​gin官方文档 AsciiJSON​​​​Golang Gin 实战(八)| JSON渲染输出​​​​github gin​​


举报

相关推荐

0 条评论