JSON 格式
以下是处理 JSON 格式请求体的简单示例:
package main
import (
"fmt"
"github.com/gogf/gf/frame/g"
"github.com/gogf/gf/net/ghttp"
)
type User struct {
ID int `json:"id"`
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
s := g.Server()
// 注册路由
s.BindHandler("/json", func(r *ghttp.Request) {
// 获取 JSON 请求体
var user User
if err := r.GetJson(&user); err != nil {
r.Response.Write("JSON 解析失败:" + err.Error())
return
}
// 打印解析结果
fmt.Printf("ID: %d, Name: %s, Age: %d\n", user.ID, user.Name, user.Age)
// 返回成功响应
r.Response.Write("JSON 请求成功")
})
// 启动 Web 服务器
s.Run()
}
在这个示例中,我们定义了一个 User 结构体,然后使用 r.GetJson 方法解析 JSON 请求体。这里 User 结构体的字段标签指定了 JSON 数据中对应字段的名称。
XML 格式
以下是处理 XML 格式请求体的简单示例:
package main
import (
"fmt"
"github.com/gogf/gf/frame/g"
"github.com/gogf/gf/net/ghttp"
)
type UserXML struct {
ID int `xml:"id"`
Name string `xml:"name"`
Age int `xml:"age"`
}
func main() {
s := g.Server()
// 注册路由
s.BindHandler("/xml", func(r *ghttp.Request) {
// 获取 XML 请求体
var user UserXML
if err := r.GetXml(&user); err != nil {
r.Response.Write("XML 解析失败:" + err.Error())
return
}
// 打印解析结果
fmt.Printf("ID: %d, Name: %s, Age: %d\n", user.ID, user.Name, user.Age)
// 返回成功响应
r.Response.Write("XML 请求成功")
})
// 启动 Web 服务器
s.Run()
}
在这个示例中,我们定义了一个 UserXML 结构体,然后使用 r.GetXml 方法解析 XML 请求体。同样,结构体的字段标签指定了 XML 数据中对应字段的名称。
这些示例演示了如何在 GoFrame 中处理 JSON 和 XML 格式的请求体。在实际应用中,你可以根据需求进一步扩展和优化处理逻辑。
转载请注明出处:http://www.zyzy.cn/article/detail/7820/GoFrame