golang中json和struct的使用


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM