摘要
返回JSON格式信息到前端,在Gin框架中可使用两种方式
第一种方法,使用map类型返回
main.go
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r :=gin.Default()
r.GET("/json", func(c *gin.Context) {
//方法一:使用map
data := map[string]interface{}{
"name": "Go语言",
"message": "Gin框架",
}
c.JSON(http.StatusOK,data)
})
r.Run(":9090")
}
在Gin框架中,可使用gin.H
实现,打开详细解析后,就可以看到就是一个map类型的接口
main.go
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r :=gin.Default()
r.GET("/json", func(c *gin.Context) {
//方法一:使用map
//data := map[string]interface{}{
// "name": "Go语言",
// "message": "Gin框架",
//}
data := gin.H{"name":"Go语言","message":"Gin框架"}
c.JSON(http.StatusOK,data)
})
r.Run(":9090")
}
再修改一下,严谨美观的写法:
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r := gin.Default()
r.GET("/json", func(c *gin.Context) {
//方法一:使用map
//data := map[string]interface{}{
// "name": "Go语言",
// "message": "Gin框架",
//}
//data := gin.H{"name":"Go语言","message":"Gin框架"}
c.JSON(http.StatusOK, gin.H{"name": "Go语言", "message": "Gin框架"})
})
r.Run(":9090")
}
运行程序
go run main.go
打开浏览器访问http://ip:9090/json
第二种方法,使用结构体方式,这种方式用途最多,最常用
main.go
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r := gin.Default()
r.GET("/json1", func(c *gin.Context) {
//方法一:使用map
//data := map[string]interface{}{
// "name": "Go语言",
// "message": "Gin框架",
//}
//data := gin.H{"name":"Go语言","message":"Gin框架"}
//第一种方法使用内置gin.H map类型
c.JSON(http.StatusOK, gin.H{"name": "Go语言", "message": "Gin框架"})
})
//第二种方法使用结构体
type msg struct {
Name string
Message string
}
r.GET("/json2", func(c *gin.Context) {
data :=msg{
Name: "Go语言",
Message: "Gin框架",
}
c.JSON(http.StatusOK,data)
})
r.Run(":9090")
}
运行程序
go run main.go
打开浏览器
c.JSON是访问不到的,涉及到序列化问题
可以使用
tag
方式,添加"json:"name"
"main.go
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r := gin.Default()
r.GET("/json1", func(c *gin.Context) {
//方法一:使用map
//data := map[string]interface{}{
// "name": "Go语言",
// "message": "Gin框架",
//}
//data := gin.H{"name":"Go语言","message":"Gin框架"}
//第一种方法使用内置gin.H map类型
c.JSON(http.StatusOK, gin.H{"name": "Go语言", "message": "Gin框架"})
})
type msg struct {
Name string `json:"name"`
Message string
}
r.GET("/json2", func(c *gin.Context) {
data :=msg{
Name: "Go语言",
Message: "Gin框架",
}
c.JSON(http.StatusOK,data)
})
r.Run(":9090")
}
再次访问:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。