由于空字符串是 Go 的零/默认值string
,我决定改为定义所有此类字段interface{}
。例如
type student struct {
FirstName interface{} `json:"first_name"`
MiddleName interface{} `json:"middle_name"`
LastName interface{} `json:"last_name"`
}
如果该特定字段的值不可用,则我发送数据的应用程序需要 null 而不是空字符串。
这是正确的方法还是有人可以指出比这更好的方法。
在json 包文档中:
指针值编码为指向的值。nil 指针编码为 null JSON 对象。
因此,您可以存储一个指向字符串的指针,如果不是 nil,该字符串将被编码为字符串,如果为 nil,则将被编码为“null”
type student struct {
FirstName *string `json:"first_name"`
MiddleName *string `json:"middle_name"`
LastName *string `json:"last_name"`
}