在go中使用omitempty的代码实例
omitempty在go中的使用
直接上代码:
packagemain
import(
"encoding/json"
"fmt"
)
typePersonstruct{
Namestring`json:"name"`
Ageint`json:"age"`
Addrstring`json:"addr,omitempty"`
}
funcmain(){
p1:=Person{
Name:"taoge",
Age:30,
}
data,err:=json.Marshal(p1)
iferr!=nil{
panic(err)
}
fmt.Printf("%s\n",data)
fmt.Println(p1.Name,p1.Age,p1.Addr)
p2:=Person{
Name:"CangLaoshi",
Age:18,
Addr:"Japan",
}
data2,err:=json.Marshal(p2)
iferr!=nil{
panic(err)
}
fmt.Printf("%s\n",data2)
fmt.Println(p2.Name,p2.Age,p2.Addr)
}
结果:
{"name":"taoge","age":30}
taoge30
{"name":"CangLaoshi","age":18,"addr":"Japan"}
CangLaoshi18Japan
可以看到,有了omitempty后,如果addr为空,则生成的json中没有addr字段。
可以去掉omitempty,再试试。
不多说。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接