国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

golang中json的omitempty使用操作

瀏覽:103日期:2024-05-29 18:49:00

我就廢話不多說了,大家還是直接看代碼吧~

package mainimport ('encoding/json''fmt')type Project struct { Name string `json:'name'` Url string `json:'url'` Docs string `json:'docs,omitempty'`}func main() { p1 := Project{ Name:'hello name', Url:'https://blog.csdn.net/qq_30505673', } data, err := json.Marshal(p1) if err != nil { panic(err) } // Docs定義為omitempty所以不會出現Docs的字段 fmt.Printf('%sn', data) p2 := Project{ Name:'lovego', Url:'https://blog.csdn.net/qq_30505673', Docs:'https://blog.csdn.net/qq_30505673', } data2, err := json.Marshal(p2) if err != nil { panic(err) } //打印出所有的字段 fmt.Printf('%sn', data2)}

golang中json的omitempty使用操作

如果沒有omitempty,該字段是會顯示的。

補充:golang omitempty實現嵌套結構體的省略輸出

golang在處理json轉換時,對于標簽omitempty定義的field,如果給它賦得值恰好等于空值(比如:false、0、''、nil指針、nil接口、長度為0的數組、切片、映射),則在轉為json之后不會輸出這個field。

那么,針對結構體中嵌套結構體,如果嵌套結構體為空,是否也會忽略?如果要忽略空結構體輸出,怎么處理?

情況一:匿名結構體:使用omitempty修飾該匿名結構體中的字段,那么當為空時不會輸出

type Book struct{ Name string `json:'name'` Price float32 `json:'price'` Desc string `json:'desc,omitempty'` Author //匿名結構體}type Author struct { Gender int `json:'gender,omitempty'` Age int `json:'age,omitempty'`} func main() { var book Book book.Name = 'testBook' bookByte,_:=json.Marshal(book) fmt.Printf('%sn', string(bookByte))}

輸出:

{'name':'testBook','price':0}

情況二:非匿名結構體

type Book struct{ Name string `json:'name'` Price float32 `json:'price'` Desc string `json:'desc,omitempty'` Author Author `json:'author,omitempty'`}type Author struct { Gender int `json:'gender,omitempty'` Age int `json:'age,omitempty'`} func main() { var book Book book.Name = 'testBook' bookByte,_:=json.Marshal(book) fmt.Printf('%sn', string(bookByte))}

輸出:

{'name':'testBook','price':0,'author':{}}

可以發現,沒有給嵌套結構體賦值時,會打印該嵌套結構體的空結構體。這是因為該空結構體不屬于omitempty能識別的空值(false、0、''、nil指針、nil接口、長度為0的數組、切片、映射)。但若期望該嵌套結構體的空結構體也不會輸出,可以通過指針實現。

type Book struct{ Name string `json:'name'` Price float32 `json:'price'` Desc string `json:'desc,omitempty'` Author *Author `json:'author,omitempty'`}type Author struct { Gender int `json:'gender'` Age int `json:'age'`} func main() { var book Book book.Name = 'testBook' bookByte,_:=json.Marshal(book) fmt.Printf('%sn', string(bookByte))}

輸出:

{'name':'testBook','price':0}

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 香蕉网影院在线观看免费 | 亚洲日本欧美综合在线一 | 国产精品色综合久久 | 色久天堂网 | 91精品国产爱久久久久久 | 精品国产午夜久久久久九九 | 欧美三级一级片 | 亚洲天堂色网站 | 99久久精品国产一区二区成人 | 欧美亚洲中日韩中文字幕在线 | 日本一级毛片视频无遮挡免费 | 男人天堂视频网 | 亚洲精选在线观看 | 青青青免费手机版视频在线观看 | 日韩在线手机看片免费看 | 日韩一级欧美一级在线观看 | 亚洲品质自拍视频网站 | a级毛片免费高清视频 | 亚洲小视频网站 | a级精品九九九大片免费看 a级毛片免费观看网站 | 亚洲一区二区三区高清 | 最新国产一区二区精品久久 | 久久99久久精品免费思思6 | 女让张开腿让男人桶视频 | 久久久日本久久久久123 | 精品区 | 久久久国产精品免费视频 | 亚洲人成网址在线观看 | 毛片免费在线播放 | 99久在线精品99re6视频 | 最新中文字幕一区二区乱码 | 精品久久在线观看 | 日本理论片午夜论片 | 一级网站在线观看 | 久久国产欧美日韩精品 | 99久久精品免费看国产高清 | 美女福利视频国产 | 又刺激又黄的一级毛片 | 成人免费视频在线看 | 国产午夜伦伦伦午夜伦 | 国产成人亚洲综合91精品555 |