Go 中 json.Unmarshal 什么时候返回错误?
Go 中,json.Unmarshal 函数将 JSON 字符串解析为结构体,但它并不总是返回错误。但是,在某些情况下它确实会返回错误。
当它不返回错误时
当源中的值不报告错误时,JSON 解码器通常不会报告错误t 与目标中的那些匹配。例如,如果源包含名为“status”的字段,但目标不包含,则不会引发错误。
错误案例
json。Unmarshal 确实返回以下场景中的错误:
错误案例示例
type A struct { Name string `json:"name"` } var jsonString string = `{ "status": "false" }'` var a A error := json.Unmarshal([]byte(jsonString), &a) fmt.Println(err) // prints cannot unmarshal bool into Go value of type string
在此示例中,抛出错误因为源 JSON 有一个 boolean 类型的“status”字段,但目标结构体没有相应的 boolean田野。
以上是Go 中何时 `json.Unmarshal` 抛出错误?的详细内容。更多信息请关注PHP中文网其他相关文章!