在使用 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 的默认值问题的介绍,希望对您有所帮助。