Golang解析json的一个问题
业务模块从php迁移到golang下了,最近遇到一个golang下json解析的问题: 请求接口,按返回包字段判断请求成功与否。 伪代码如下: package main import ( "encoding/json" "fmt" ) type Response struct { Code int `json:"code"` Msg string `json:"msg"` } func main() { // 场景1,返回包符合接口要求 str := `{"code":100,"msg":"failed"}` var res Response json.Unmarshal([]byte(str), &res) fmt.Printf("res=%+v\n", res) // 解析正确,符合预期 // res={Code:100 Msg:failed} // 场景2,返回包不符合接口要求,缺少相关字段 str = `{"retCode":100,"retMsg":"failed"}` var res1 Response json.Unmarshal([]byte(str), &res1) fmt.Printf("res=%+v\n", res1) // 解析错误,不符合预期 // res={Code:0 Msg:} } 这里由于接口地址配置错误,导致请求到其他接口,返回包不符合协议要求。 ...