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

  • 相关阅读:
    通过JDBC连接oracle数据库的十大技巧
    asp.net里导出excel表方法汇总
    流式媒体
    html 另存为/打印/刷新/查看原文件等 代码
    JSP 语法详解
    让一个网页打开的同时自动为另一个网页自动填写表单并提交
    StreamWriter输出中文乱码的问题
    “mailto”的六则应用技巧
    返回目录大小
    JDBC基础(二)
  • 原文地址:https://www.cnblogs.com/beilong/p/13237222.html
Copyright © 2011-2022 走看看