如果源中的值与目标中的值不对应,则JSON解码器不会报告错误。例如,如果源包含“状态”字段,这不是错误,但目标没有。
在其他情况下,Unmarshal函数确实会返回错误:
语法错误
type A struct { Name string `json:"name"`}data = []byte(`{"name":what?}`)err = json.Unmarshal(data, &a)fmt.Println(err) // prints character 'w' looking for beginning of value类型不匹配
data:= []byte(`{"name":false}`)type B struct { Name string `json:"name"`}var b Berr = json.Unmarshal(data, &b)fmt.Println(err) // prints cannot unmarshal bool into Go value of type string游乐场的例子



