golang中json和struct的使用

cleanerxiaoqiang 2020-07-05

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

相关推荐

84593973 / 0评论 2020-06-14