在struct转json时,omitempty字段的值如果是该字段类型的零值,则忽略该字段。
例:
package main import "fmt" import "encoding/json" type User struct { Name string `json:"name"` Age int `json:"age,omitempty"` } func main() { u := User{ Name: "abc", Age: 10, } bytes, _ := json.Marshal(&u) fmt.Println(string(bytes)) // u = User{ Name: "def", } bytes, _ = json.Marshal(&u) fmt.Println(string(bytes)) }
执行结果:
{"name":"abc","age":10} {"name":"def"}