介绍
通常,JSON 使用 unicode 替换特殊 HTML 字符,例如 < 变为 \ u003c。如果要按字面对这些字符进行编码,则可以使用 PureJSON。Go 1.6 及更低版本无法使用此功能。
本文主要介绍 gin 框架中的 PureJSON功能,并给出测试结果。
案例
源码
package main
import "github.com/gin-gonic/gin"
func main() {
r := gin.Default()
// 提供 unicode 实体
r.GET("/json", func(c *gin.Context) {
c.JSON(200, gin.H{
"html": "<b> Hello, world!</b>",
})
})
// 提供字面字符
r.GET("/pureJson", func(c *gin.Context) {
c.PureJSON(200, gin.H{
"html": "<b> Hello, world!</b>",
})
})
// 监听并在 0.0.0.0:8080 上启动服务
r.Run(":8080")
}
测试
$ curl 127.0.0.1:8080/json
{"html":"\u003cb\u003e Hello, world!\u003c/b\u003e"}
普通json 会将< > 特殊字符转为 unicode
$ curl 127.0.0.1:8080/pureJson
{"html":"<b> Hello, world!</b>"}
pureJson 将会保留特殊字符