在使用Golang的时候,不免会使用Json和结构体的相互转换,这时候常用的就是 json.Marshal和json.Unmarshal两个函数。
这时候在定义json结构体的时候,我们会用到omitempty这个字段,这个字段看似简单,但是却有很多小坑,这篇文章带你稍微研究一下他的用途和功能
Basic Usage
当我们设置json的struct的时候,会定义每个字段对一个json的格式,比如定义一个dog 结构体:
type Dog struct {
Breed string
WeightKg int
}
现在我们对他进行初始化,将其编码为JSON格式:
func main() {
d := Dog{
Breed: "dalmation",
WeightKg: 45,
}
b, _ := json.Marshal(d)
fmt.Println(string(b))
}
则输出的结果为:{"Breed":"dalmation","WeightKg":45},你可点击这里.
现在假如有一个结构体变量我们没初始化,那么结果可能也会跟我们预期的不太一样:
func main()