json tag
概念说明
json tag 是结构体字段上 json:"..." 形式的标签。
它用于控制结构体转 JSON 时的字段名和行为。
语法/规则
- 不写
json tag时,JSON 字段名默认使用结构体字段名。 - 小写字段(未导出)不会被
encoding/json编码。 json:"-"表示该字段在 JSON 中忽略。json:",omitempty"表示字段是零值时省略输出。- 多个选项写在同一个 tag 里,例如
json:"age,omitempty"。
忽略字段示例(json:"-")
| |
输出结果:
| |
空值省略示例(omitempty)
| |
输出结果:
| |
常见错误
- 字段名小写(未导出)却期望参与 JSON 编解码,结果字段被忽略。
- 把
json:"-"和omitempty混淆:前者是永远忽略,后者是零值时忽略。 - 误以为
omitempty会过滤空字符串之外的所有“无效值”,实际按类型零值规则判断。