欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

golang json omit

傅智翔1年前9瀏覽0評論

在golang中,JSON編碼和解碼是一個常見任務。當我們需要將一個結構體轉換成JSON格式的字符串時,可以使用json.Marshal()函數,如果我們需要將一個JSON字符串轉換成結構體,則可以使用json.Unmarshal()函數。但是在某些情況下,我們可能只需要將某些字段編碼為JSON字符串,而忽略掉其他字段。這時候,可以使用golang的json tag中的omitempty或-來達到這個目的。

type person struct {
Name    string `json:"name"`
Age     int    `json:"-"`
Country string `json:"country,omitempty"`
}

上面的這個結構體中,我們將Age字段標記為了"-",這意味著Age字段將被忽略。而在Country字段中,我們將omitempty標記為了json tag,這意味著當Country字段為空時,將被忽略。

p := person{Name: "John Doe", Age: 30, Country: ""}
jsonBytes, err := json.Marshal(p)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(jsonBytes))

在上面的代碼中,我們創建了一個person結構體實例,Country字段為空字符串。當我們將這個實例轉換成JSON字符串時,Age字段被忽略,而Country字段也被忽略了,因為它是一個空字符串。

使用omitempty或-標記是非常方便的,但需要注意的是,它只在編碼JSON字符串時起作用,而在解碼時不起作用。因此,在解碼JSON字符串時,還是需要手動過濾掉那些不需要的字段。