gin 数据格式json等实例

目标

  • 使用json将数据封装成json格式。

  • 使用jsonp和json得区别就是解决了跨域问题。

  • 使用AsciiJSON对非ASCII 字符进行转义。

  • 使用PureJSON不转码特殊字符封装成json格式。

  • 使用SecureJSON 安全发送json数据防止被劫持。

  • 扩展添加一个yaml格式

新建项目

新建文件gin_json.go

package main

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

func ProcessRequest(r *gin.Engine,data interface{}){
	r.GET("/jsonp", func(c *gin.Context) {
		c.JSONP(http.StatusOK, data)
	})
	r.GET("/asciiJSON", func(c *gin.Context) {
		c.AsciiJSON(http.StatusOK, data)
	})
	r.GET("/purejson", func(c *gin.Context) {
		c.PureJSON(http.StatusOK, data)
	})
	r.GET("/json", func(c *gin.Context) {
		c.JSON(http.StatusOK, data)
	})
	r.GET("/YAML", func(c *gin.Context) {
		c.YAML(http.StatusOK, data)
	})
}

func main(){
	r := gin.Default()
	data := map[string]interface{}{
		"name": "xiazhongwei夏中伟",
		"tag":"<br>",
		"html": "<b>Hello, world!</b>",
	}

	ProcessRequest(r,data)
	r.Run(":8088")
}

测试

//访问http://127.0.0.1:8088/jsonp

{"html":"\u003cb\u003eHello, world!\u003c/b\u003e","name":"xiazhongwei夏中伟","tag":"\u003cbr\u003e"}
//访问http://127.0.0.1:8088/asciiJSON

{"html":"\u003cb\u003eHello, world!\u003c/b\u003e","name":"xiazhongwei\u590f\u4e2d\u4f1f","tag":"\u003cbr\u003e"}
//访问http://127.0.0.1:8088/purejson

{"html":"<b>Hello, world!</b>","name":"xiazhongwei夏中伟","tag":"<br>"}
//访问http://127.0.0.1:8088/json

{"html":"\u003cb\u003eHello, world!\u003c/b\u003e","name":"xiazhongwei夏中伟","tag":"\u003cbr\u003e"}
//访问http://127.0.0.1:8088/YAML

html: <b>Hello, world!</b>
name: xiazhongwei夏中伟
tag: <br>

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×