直接看代码
packagemainimport ( "encoding/json""fmt""gopkg.in/yaml.v2") typeNamestruct { Ageint`json:"age,omitempty" yaml:"age,omitempty"`Addressstring`json:"address,omitempty" yaml:"address,omitempty"`Emailstring`json:"email" yaml:"email"`} funcmain() { p :=Name{} p.Age=1b, err :=json.Marshal(p) iferr!=nil { fmt.Println(err) } fmt.Println(string(b)) m, err :=yaml.Marshal(p) iferr!=nil { fmt.Println(err) } fmt.Println(m) }
运行结果
{"age":1,"email":""} age: 1 email: ""
可以看到,用了 omitempty
,如果字段没有值,就不会出现在json或yaml当中