前言

在尝试将结构体序列化为 Json 时,你可能会遇到 “omitempty” 标记,本小记就来浅看一下它如何起作用。

先上结论:

  • 基本类型的默认值会被 omit,除了数组。
  • 指针类型为 nil 时会被 omit。

Talk is cheap. Show me the code.

TestNotOmitEmpty

全部序列化成功。

TestOmitEmptyWithDefaultValue

默认值全军覆没,除了数组。

testOmitEmptyWithDefaultValueButFatherSet

自己设置的默认值也全军覆没,除了数组。

testOmitEmptyWithNotDefaultValueButFatherSet

非默认值当然不会被省略了。