在go中使用omitempty的代码实例

2023-06-01 00:00:00 代码 实例 omitempty

omitempty在go中的使用

直接上代码:

package mainimport (  "encoding/json"  "fmt")type Person struct {  Name string `json:"name"`  Age int  `json:"age"`  Addr string `json:"addr,omitempty"`}func main() {  p1 := Person{    Name: "taoge",    Age: 30,  }  data, err := json.Marshal(p1)  if err != nil {    panic(err)  }  fmt.Printf("%s\n", data)  fmt.Println(p1.Name, p1.Age, p1.Addr)  p2 := Person{    Name: "Cang Laoshi",    Age: 18,    Addr: "Japan",  }  data2, err := json.Marshal(p2)  if err != nil {    panic(err)  }  fmt.Printf("%s\n", data2)  fmt.Println(p2.Name, p2.Age, p2.Addr)}

结果:

{"name":"taoge","age":30}
taoge 30
{"name":"Cang Laoshi","age":18,"addr":"Japan"}
Cang Laoshi 18 Japan

可以看到,有了omitempty后,如果addr为空, 则生成的json中没有addr字段。

可以去掉omitempty, 再试试。

不多说。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对AIDI的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章