我将值传递给值为omitempty
Offset uint64 'json:"offset,omitempty"'
然而,当我将0作为offset的值传递时,它也被省略。
我可以以某种方式将0声明为未定义为null的值吗?
答案 0 :(得分:5)
序列化的结构通常使用指针来指示可为空的字段。它可以使使用该结构更加繁琐,但具有识别nil
和0
之间的优势
type T struct {
Offset *uint64 `json:"offset,omitempty"`
}
使用nil指针
t := T{}
// marshals to "{}"
分配零值后
t.Offset = new(uint64)
// marshals to `{"offset":0}`