首页 > 其他 > 详细

设置 omitempty 标签忽略空值字段

时间:2021-06-07 20:36:04      阅读:21      评论:0      收藏:0      [点我收藏+]

JSON Tag 的简单应用 - 自定义字段名,去掉空值字段

默认情况下,结构体序列化后的字段名和结构体的字段名保持一致,如在结构体中定义了对外公开的字段,字段名首字母都是大写的,JSON 序列化后得到的也是首字母大写的字段名,并不符合日常开发习惯。

其实 go 提供了在结构体中使用 JSON Tag 定制序列化输出的功能,本文仅使用了“自定义字段名”和“忽略空值字段”两个功能,详见 go 标准库 encoding/json 文档

现在利用 JSON Tag 来改造上面两个结构体,这里要做的只有两步:

  1. 把字段名全部改为小写;
  2. 对 CustomUser 中的 Profile 设置 omitempty 标签,即当 Profile 的值为 nil 时,不输出 Profile 字段;

代码如下:

// 自定义用户输出结构
type CustomUser struct {
    ID          uint              `json:"id"`
    Username    string            `json:"username"`
    Role        string            `json:"role"`
    Profile     *CustomProfile    `json:"profile,omitempty"`
}

// 自定义用户信息输出结构
type CustomProfile struct {
    Nickname    string            `json:"nickname"`
    Phone       string            `json:"phone"`
}

设置 omitempty 标签忽略空值字段

原文:https://www.cnblogs.com/winyh/p/14860076.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!