色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

golang json 默認值

錢多多2年前10瀏覽0評論

Go語言中的JSON數據格式在使用時非常方便,但是在某些情況下我們需要在JSON數據中設置一些默認值。當我們使用golang編寫JSON時,默認值就會變得特別重要。在Go語言中如何實現JSON默認值呢?

type Person struct {
Name string `json:"name"`
Age  int    `json:"age"`
}

在上面的代碼中,我們定義了一個Person的結構體。當我們進行JSON序列化時,我們可以使用如下代碼:

p := Person{"Kevin", 22}
b, err := json.Marshal(p)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(b)) // Output: {"name":"Kevin","age":22}

從上面的代碼中,我們可以看出在序列化時,JSON中不會包含任何默認值。那么如果我們想要設置Person的默認值,我們該怎么辦呢?下面是將Person的成員變量設置為默認值的代碼:

type Person struct {
Name string `json:"name,omitempty"`
Age  int    `json:"age,omitempty"`
}
p := Person{}
p.Name = "Hetta"
p.Age = 18
b, err := json.Marshal(p)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(b)) // Output: {"name":"Hetta","age":18}

在上面的代碼中,我們使用了 `omitempty` 關鍵字。這意味著當字段的值為空時,在JSON數據中將省略字段。由于`Age`字段設置為空時默認為0,所以在JSON中沒有被省略掉。但是,由于`Name`字段已經被設置成了"hetta",因此在JSON數據中不為空,也就沒有被省略掉了。

總結:在golang中,我們可以使用 `omitempty` 關鍵字為JSON設置默認值。具體的實現方法是將需要設置的字段的標記設置為 `omitempty`。這樣,當這個字段的值為空時,我們可以為該字段設置一個默認值,從而實現序列化時的默認值設定。