zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Java DB 访问(三)mybatis mapper interface接口
    android stdio 安装后gradle 编译失败,设置代理不管用
    超星自动签到并邮件通知
    关于解决Mac使用docker安装SQL server for Linux 中文乱码问题
    Bom简单介绍
    grid-layout
    Position
    前端学习(注册表)
    关于学精通一门语言的个人看法(欢迎留言补充)
    Google 最新推出数据集搜索
  • 原文地址:https://www.cnblogs.com/beilong/p/13237222.html
Copyright © 2011-2022 走看看