好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > golang中json的omitempty使用操作

golang中json的omitempty使用操作

熱門標簽:宿遷便宜外呼系統代理商 湛江crm外呼系統排名 仙桃400電話辦理 重慶慶云企業400電話到哪申請 地圖標注免費定制店 上海極信防封電銷卡價格 寧波語音外呼系統公司 鄭州智能語音電銷機器人價格 不封卡外呼系統

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

package main
import (
"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("%s\n", 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("%s\n", data2)
}

如果沒有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("%s\n", 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("%s\n", 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("%s\n", string(bookByte))
}

輸出:

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

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

您可能感興趣的文章:
  • golang json數組拼接的實例
  • 在golang xorm中使用postgresql的json,array類型的操作
  • golang中json小談之字符串轉浮點數的操作
  • golang 實現json類型不確定時的轉換
  • golang:json 反序列化的[]和nil操作
  • 解決Golang json序列化字符串時多了\的情況
  • golang中json和struct的使用說明

標簽:儋州 遼寧 安康 物業服務 西雙版納 電子產品 青海 海南

巨人網絡通訊聲明:本文標題《golang中json的omitempty使用操作》,本文關鍵詞  golang,中,json,的,omitempty,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《golang中json的omitempty使用操作》相關的同類信息!
  • 本頁收集關于golang中json的omitempty使用操作的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: ass性强迫rape| 欧美激情亚洲一区中文字幕| 在线观看一夜七次郎国产| 男生在线观看www视频免费| 美女欧在线观看免费观看| 大学生粉嫩无套流白浆嗯啊| 国产福利在线高清导航大全| 国产又黄又爽又猛的免费视频播放| 护士脱了精光让人吃秘?奶| 爱情与义务片的主要内容| 美女被免费网站在线视频九色| 白嫩白嫩BBBBBBBBB| 筱田优在线| 国模在线一区二区三区| 国产女?黄A片AAA片视频| 男人j放进女人p动态图视频| 黄网站大全免费| A片在线观看性猛交XXXⅩ女人| 日韩免费喷潮乱码无码精品| 天天躁日日躁白天躁晚上躁| 爱欲亲娘小说| 师父不要呀| 美国禁1一4集无删减版百度云资源 | 艳妇荡乳1-8| 美女张开腿让男人桶爽| 岳给我戴避孕套| 日本黄色一级视频| 91丨九色丨白浆秘?小青龙| 国产秒拍| 污片网站在线观看| 我和黑帮老大的365日| 当着老公的面被别人欺负该怎么办| Brazzers爆乳4KHD| 山柳村寡妇情史| 80s影视| 色欲久久久久久精品草莓| 韩国电影r| 曰本一级毛片免费播放| 蜜桃tv点击进入在线影院| 日本成熟少妇高潮A片全身动漫 | 娇妻被朋友日出白浆抖内|