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`。這樣,當這個字段的值為空時,我們可以為該字段設置一個默認值,從而實現序列化時的默認值設定。
上一篇html快捷整理代碼
下一篇python 按列刪除