【Go】Gin框架返回Json
Golang程序
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main(){
r := gin.Default()
r.GET("/Json", func(c *gin.Context) {
// 方法一:
//data := map[string]interface{}{
// "name" : "靓仔" ,
// "msg" : "hello Go" ,
// "age" : 18 ,
//}
// gin.H 底层逻辑就是map[string]interface{}
data := gin.H{
"name":"靓仔",
"msg":"hello world",
"age":18,
}
c.JSON(http.StatusOK,data)
})
// 方法2 : 结构体 (字段必须大写)
// 灵活使用tag来对结构体字段做定制化操作
type msg struct {
Name string `json:"name"`
Message string `json:"message"`
Age int `json:"age"`
}
r.GET("/anotherJson", func(c *gin.Context) {
data := msg{
Name: "靓仔",
Message :"hello world",
Age : 18,
}
c.JSON(http.StatusOK,data)
})
r.Run()
}
上课笔记
c.JSON(http.StatusOK,data)
,主要调用该函数进行返回json格式
- 第一种方法:常见就是传入
map[string]interface{}
类型,其中gin.H
底层就是map[string]interface{}
类型
- 第二种方法:定义结构体,直接传入结构体,但是必须注意,其定义字段必须是要大写字母开头(跨包必须相互间可见,底层实则实现一种反射来获取字段),我们可以利用
tag
来定义其json格式下的json:name