golang_gin响应返回数据类型
LYT
首页
分类
标签
项目
留言
友链
关于

golang_gin响应返回数据类型

2022年7月27日23时6分
2022年7月27日23时7分
golang
golang gin
浏览量:
总浏览量:
0

gin返回数据类型

字符串类型

func main() { r := gin.Default() //配置模板文件 r.LoadHTMLGlob("templates/*") //返回字符串信息 r.GET("/string", func(c *gin.Context) { c.String(200, "value %v", "index") }) r.Run() }

返回json信息

func main() { r := gin.Default() //配置模板文件 r.LoadHTMLGlob("templates/*") //返回json信息 r.GET("/json1", func(c *gin.Context) { c.JSON(200, map[string]interface{}{ "name": "liyatai", "age": 21, }) }) r.Run() }

gin简化map书写格式

gin提供了一种数据结构来代替map[string]interface{},

func main() { r := gin.Default() //配置模板文件 r.LoadHTMLGlob("templates/*") //返回json信息 r.GET("/json2", func(c *gin.Context) { c.JSON(200, gin.H{ "name": "zhangfei", "age": 55, }) }) r.Run() }

将结构体返回成json格式

此外gin还能将结构体数据直接返回成json,这里结构体里面的属性名称首字母必须大写,不然返回的就是空数据。

//结构体数据 type Student struct { Name string Year int Major string } func main() { r := gin.Default() //配置模板文件 r.LoadHTMLGlob("templates/*") //返回json信息 r.GET("/json2", func(c *gin.Context) { c.JSON(200, gin.H{ "name": "zhangfei", "age": 55, }) }) r.Run() }

大小写字母问题

如果想展示带有首字母小写名称属性的结构体数据的json形式,那么需要额外增加字段

type Teacher struct { Name string `json:"name"` Age string `json:"age"` Level string `json:"level"` } func main() { r := gin.Default() //配置模板文件 r.LoadHTMLGlob("templates/*") //返回json信息 r.GET("/json4", func(c *gin.Context) { a := Teacher{"Joe", "44", "doctor"} c.JSON(200, a) }) r.Run() }

带有回调函数的json请求

jsonp请求,可以跟回调函数,主要解决跨域的请求

type Teacher struct { Name string `json:"name"` Age string `json:"age"` Level string `json:"level"` } func main() { r := gin.Default() //配置模板文件 r.LoadHTMLGlob("templates/*") //返回json信息 r.GET("/jsonp", func(c *gin.Context) { a := Teacher{"Joe-jsonp", "44-jsonp", "doctor-jsonp"} c.JSONP(200, a) }) r.Run() }

image-20220727224850998

返回xml数据

gin可以返回xml数据格式

func main() { r := gin.Default() //配置模板文件 r.LoadHTMLGlob("templates/*") //返回json信息 r.GET("/xml", func(c *gin.Context) { c.XML(200, gin.H{ "size": "66k", "location": "c:/program/files/doc", "type": "docx", }) }) r.Run() }

渲染前端页面

gin有专门渲染前端页面的工具

1、先要在文件夹下新家一个存放html文件的文件夹templates,然后在声明路由以后,配置模板文件

go代码

func main() { r := gin.Default() //配置模板文件 r.LoadHTMLGlob("templates/*") //返回json信息 r.GET("/news", func(c *gin.Context) { c.HTML(200, "news.html", gin.H{ "title": "后台数据", "link": "这是一个链接", }) }) r.Run() }

前端页面

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <h2>{{.title}}</h2> <a href="https://www.baidu.com">{{.link}}</a> /*获取go返回的数据*/ </body> </html>