Posted in

Go语言结构体字段序列化:JSON标签配置的6个关键点

第一章:Go语言结构体字段序列化:JSON标签配置的6个关键点

Go语言中,结构体字段通过 json 标签控制序列化行为,是实现结构体与JSON数据交互的核心机制。掌握 json 标签的使用,有助于开发者更精确地控制输出格式。

### 字段名称映射

结构体字段默认使用字段名作为JSON键名。通过 json 标签可自定义键名,例如:

type User struct {
    Name string `json:"username"` // 序列化为 "username"
}

### 忽略空值字段

使用 omitempty 选项可在字段值为空时跳过序列化:

type User struct {
    Email string `json:"email,omitempty"` // email为空时不输出
}

### 忽略字段

使用 - 可完全忽略字段的序列化过程:

type User struct {
    Password string `json:"-"` // 序列化时忽略密码字段
}

### 控制字符串表示

使用 string 选项将数值等类型以字符串形式输出:

type Config struct {
    ID int `json:"id,string"` // 输出为字符串形式的数字
}

### 嵌套结构体处理

嵌套结构体字段同样支持 json 标签配置,可递归控制内部结构:

type Address struct {
    City string `json:"city"`
}
type User struct {
    Addr Address `json:"address"`
}

### 多标签选项组合

多个选项可通过逗号组合使用,顺序不影响行为:

type User struct {
    Token string `json:"token,omitempty,string"` // 空值忽略并以字符串输出
}

专注 Go 语言实战开发,分享一线项目中的经验与踩坑记录。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注