Go 中的 JSON 解码错误
使用 Go 中的 json.Unmarshal 函数将 JSON 解码为结构体时,了解以下情况非常重要将返回错误。
当未返回错误时
与某些语言不同,如果 JSON 源中的值,Go 中的 JSON 解码器不会报告错误与目标结构中的值不对应。例如,如果 JSON 包含结构中不存在的字段,则不会被视为错误。
返回错误时
但是, json.Unmarshal 将在以下情况下返回错误:
示例
考虑以下代码:
type A struct { Name string `json:"name"` } jsonString := `{"status": false}` var a A err := json.Unmarshal([]byte(jsonString), &a)
在此示例中,json.Unmarshal 不会返回错误,即使 JSON 不包含预期的名称字段。解码器将简单地忽略状态字段并将 A 结构体的名称字段保留为空。
但是,如果 JSON 包含以下内容:
{"name": false}
json.Unmarshal 将返回错误因为JSON值无法转换为字符串类型。
以上是Go 中的 json.Unmarshal 什么时候返回错误?的详细内容。更多信息请关注PHP中文网其他相关文章!