由于空字符串是 Go string
的零/默认值,因此我决定将所有此类字段定义为 interface{}
。例如
type student struct {
FirstName interface{} `json:"first_name"`
MiddleName interface{} `json:"middle_name"`
LastName interface{} `json:"last_name"`
}
如果该特定字段的值不可用,则我发送数据的应用程序需要 null 而不是空字符串。
这是正确的方法还是有人可以指出比这更好的方法。
最佳答案
在 json package documentation :
Pointer values encode as the value pointed to. A nil pointer encodes as the null JSON object.
所以你可以存储一个指向字符串的指针,如果不是 nil,它将被编码为字符串,如果为 nil,则将被编码为“null”
type student struct {
FirstName *string `json:"first_name"`
MiddleName *string `json:"middle_name"`
LastName *string `json:"last_name"`
}
关于go - 将 null 分配给 JSON 字段而不是空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31048557/