golang中json和struct的使用
1、返回json響應結果
在struct的字段后面加入json:"key"可以進行json格式輸出,其中key為json的鍵名
type SuccessResponse struct {
Code int `json:"code"`
Msg string `json:"msg"`
Data interface{} `json:"data"`
}
func SuccessRsp(ctx *gin.Context, data interface{}) {
res := SuccessResponse{
Code: 0,
Msg: "success",
Data: data,
}
ctx.JSON(http.StatusOK, res)
}
type MyData struct {
Id int `json:"id"`
Name string `json:"name"`
}
func ListAllOncallPlan(ctx *gin.Context) {
//你的業務代碼
//......
data = Mydata{Id:1, Name:"zhangsan"}
SuccessRsp(ctx, plans)
}
響應的結果為:
{
"code": 0,
"msg": "ok",
"data": {
"id": 1,
"name": "zhangsan"
}
}
tips:
1.如果struct的某個字段沒有傳值,則輸出的json為默認值,可以通過"omitempty"參數忽略掉值為空的鍵
type MyData struct {
Id int `json:"id,omitempty"`
Name string `json:"name"`
}
data = Mydata{Name:"zhangsan"}
SuccessRsp(ctx, plans)
則id的鍵會被忽略掉,輸出json為:
{
"code": 0,
"msg": "ok",
"data": {
"name": "zhangsan"
}
}
2.可以用"-"來完全掉忽略掉某個鍵, 比如下面的id不會被轉化到json字段中
type MyData struct {
Id int `json:"-"`
Name string `json:"name"`
}
1
2
3
4
2、將數據庫的字段轉化成struct
如果使用gorm框架進行數據庫連接,則可以用gorm:"column:key"來指定數據庫的鍵,如下所示
type User struct {
Id int64 `gorm:"column:id" json:"id"`
Name string `gorm:"column:name" json:"name,omitempty"`
}
原文鏈接:https://blog.csdn.net/springlustre/java/article/details/88703929