亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

golang中json的omitempty使用操作

瀏覽:69日期: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
相關文章:
主站蜘蛛池模板: 特黄特色大片免费视频大全 | 国产尤物视频 | a一级毛片免费播放 | 老年人一级特黄aa大片 | 欧美一级大片免费看 | 亚洲精品一线观看 | 91亚洲国产 | 国模私拍福利一区二区 | 国产性老妇女做爰在线 | 成人在线小视频 | 六月丁香深爱六月综合激情 | 1000部国产拍拍拍拍在线观看 | 国产精品男人的天堂 | 我要看一级黄色 | 一本到不卡 | 青青草免费观看 | 亚洲涩涩涩 | 毛片免费观看网址 | 看一级黄色大片 | 动漫精品专区一区二区三区不卡 | 一级毛片女学护士 | 一区二区免费 | 亚洲一区二区三区不卡在线播放 | 亚洲国产成人久久77 | 麻豆国产96在线 | 中国 | 美女视频毛片 | 日韩视频在线免费观看 | 99久免费精品视频在线观看2 | 久久爱影视i | 黄网站在线播放视频免费观看 | 91探花福利精品国产自产在线 | 国产成人精品福利网站人 | 中文字幕亚洲综合久久 | 大学生毛片a左线播放 | 激情视频在线观看网站 | 欧美日韩乱码毛片免费观看 | 免费能直接在线观看黄的视频 | 野外啪啪抽搐一进一出 | 日韩黄色成人 | 91精品国产美女福到在线不卡 | 亚洲黄色小视频 |