You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

encoding/json包所有可用结构体标签值查询

Go encoding/json 结构体标签全量说明

以下是encoding/json包支持的所有结构体标签选项,覆盖序列化和反序列化全场景:

  • 指定JSON字段名:直接定义映射的JSON键名,比如json:"user_name",序列化时结构体字段会对应JSON的user_name键,反序列化时也会将该键值赋值给结构体字段。
  • omitempty:添加该选项后,当字段值为对应类型的零值(如字符串空值""、整数0、布尔false、指针nil等)时,序列化JSON会忽略这个字段。
  • "-":单独使用该符号时,字段会被完全排除在序列化和反序列化流程外,无论字段值是什么都不会被处理。
  • 组合指定字段名+omitempty:格式如json:"nickname,omitempty",既自定义JSON字段名为nickname,又在字段值为零值时忽略它。
  • 仅omitempty(不指定字段名):格式如json:",omitempty",使用结构体字段本身的名称作为JSON键,同时在零值时忽略字段。
  • string:针对数值类型(int、float系列等),格式如json:"age,string",序列化时会把数值转成JSON字符串类型(比如"age":"25"而非"age":25),反序列化时也能正确将JSON字符串转回对应数值类型。
  • 仅string(不指定字段名):格式如json:",string",使用结构体字段名作为JSON键,同时将数值类型序列化为字符串。

示例代码

type Profile struct {
    ID        int    `json:"user_id"`          // 映射到JSON的user_id键
    Username  string `json:"name"`             // 映射到JSON的name键
    Age       int    `json:"user_age,string"`  // 数值转字符串序列化
    Bio       string `json:"bio,omitempty"`    // 空字符串时忽略
    Token     string `json:"-"`                // 完全排除该字段
    Followers int    `json:",omitempty"`       // 零值0时忽略,键名用Followers
}

内容的提问来源于stack exchange,提问作者Doug Tea

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 15:52:44