zoukankan      html  css  js  c++  java
  • 设置 omitempty 标签忽略空值字段

    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"`
    }
  • 相关阅读:
    css子元素水平垂直居中
    js 防抖节流
    NOIP 游记
    flash player播放器用法
    android设备连接不上电脑的解决方法
    AndroidStudio自动下载gradle失败问题解决
    3组Alpha冲刺5/6
    3组Beta冲刺2/5
    3组Beta冲刺5/5
    3组Beta冲刺1/5
  • 原文地址:https://www.cnblogs.com/winyh/p/14860076.html
Copyright © 2011-2022 走看看