golang json 默认-golang json 默认值:代码示例

javagongchengshi

温馨提示:这篇文章已超过287天没有更新,请注意相关的内容是否还可用!

golang json 默认-golang json 默认值:代码示例

Golang中的JSON默认值是指在解析JSON数据时,如果JSON中的某个字段不存在或者其值为null,那么在Golang中对应的结构体字段将被赋予其类型的默认值。

例如,如果我们定义了一个结构体类型Person:

go

type Person struct {

Name string

Age int

Gender string

}

当我们使用json.Unmarshal函数将JSON数据解析为Person类型的实例时,如果JSON中没有包含Name、Age和Gender字段,那么在解析后,这些字段将被赋予其类型的默认值。对于字符串类型的字段Name,默认值为空字符串"";对于整数类型的字段Age,默认值为0;对于字符串类型的字段Gender,默认值同样为空字符串""。

go

jsonData := []byte(`{"Name": "Alice"}`)

var p Person

json.Unmarshal(jsonData, &p)

fmt.Println(p.Name) // 输出:"Alice"

fmt.Println(p.Age) // 输出:0

fmt.Println(p.Gender) // 输出:""

在上面的示例中,JSON数据中只包含了Name字段,而Age和Gender字段在JSON中并不存在。在解析后,Age字段被赋予了默认值0,而Gender字段被赋予了默认值""。

需要注意的是,如果JSON中的字段存在但其值为null,那么在解析后,对应的结构体字段将被赋予其类型的零值。例如,如果JSON数据中包含了Age字段但其值为null,那么在解析后,Age字段将被赋予默认值0。

go

jsonData := []byte(`{"Name": "Alice", "Age": null}`)

var p Person

json.Unmarshal(jsonData, &p)

fmt.Println(p.Name) // 输出:"Alice"

fmt.Println(p.Age) // 输出:0

fmt.Println(p.Gender) // 输出:""

在上述示例中,JSON数据中包含了Name和Age字段,但Age字段的值为null。在解析后,Name字段被赋予了值"Alice",而Age字段被赋予了默认值0。

文章版权声明:除非注明,否则均为莫宇前端原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码