在使用 Golang 編寫程序時,Json 是一個不可避免的數據格式。在處理 Json 數據時,默認值(default)是一個經常用到的功能。下面將介紹 Golang 中 Json 的默認值問題。
//示例1 type Person struct{ Name string `json:"name"` Age int `json:"age"` } func main(){ jsonStr := `{"name":"Lucy"}` var p Person err := json.Unmarshal([]byte(jsonStr),&p) if err != nil{ fmt.Println(err) } fmt.Println(p.Name,p.Age) } 輸出: Lucy 0
示例一中,我們將 Json 數據 {"name":"Lucy"} 解析到 Person 結構體中。由于 Person 結構體中沒有設置 Age 字段的屬性,因此默認值為 0。
//示例2 type Person struct{ Name string `json:"name"` Age int `json:"age"` Score float64 `json:"score,omitempty"` } func main(){ jsonStr := `{"name":"Lucy","age":18}` var p Person err := json.Unmarshal([]byte(jsonStr),&p) if err != nil{ fmt.Println(err) } fmt.Println(p.Score) } 輸出: 0
示例二中,我們將 Json 數據 {"name":"Lucy","age":18} 解析到 Person 結構體中。由于 Person 結構體中設置了 Score 字段的omitempty屬性為true,因此在 Json 數據中沒有 score 字段時其值為空,即默認值為 0。
以上就是 Golang 中 Json 的默認值問題的介紹,希望對您有所幫助。
上一篇c json創建對象
下一篇python 按行排序