Response
提供了对JSON/XML
数据格式输出的原生支持,通过以下方法实现:
WriteJson*
方法用于返回JSON
数据格式,参数为任意类型,可以为string
、map
、struct
等等。返回的Content-Type
为application/json
。WriteXml*
方法用于返回XML
数据格式,参数为任意类型,可以为string
、map
、struct
等等。返回的Content-Type
为application/xml
。
JSON
package main
import (
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/net/ghttp"
)
func main() {
s.Group("/", func(group *ghttp.RouterGroup) {
group.ALL("/json", func(r *ghttp.Request) {
r.Response.WriteJson(g.Map{
"id": 1,
"name": "john",
})
})
})
s.Run()
}
执行后,我们通过curl
工具测试下:
JSONP
package main
import (
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/net/ghttp"
)
func main() {
s := g.Server()
s.Group("/", func(group *ghttp.RouterGroup) {
group.ALL("/jsonp", func(r *ghttp.Request) {
r.Response.WriteJsonP(g.Map{
"id": 1,
})
})
})
s.SetPort(8199)
s.Run()
执行后,我们通过curl
工具测试下:
XML
package main
import (
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/net/ghttp"
)
func main() {
s := g.Server()
s.Group("/", func(group *ghttp.RouterGroup) {
group.ALL("/xml", func(r *ghttp.Request) {
r.Response.Write(`<?xml version="1.0" encoding="UTF-8"?>`)
r.Response.WriteXml(g.Map{
"id": 1,
"name": "john",
})
})
})
s.SetPort(8199)
s.Run()
}