现在在用golang写一个http客户端,来请求HTTP返回的json,但是每个接口返回的格式都是一样的如:
{"code": 0,"data": [],"message": "Success"}
像这种格式的话 我们如果定义一个struct或者map都可以通过json.Unmarshal解析出来,但是关键是这个data里面的东西,每个接口里面的结构是不一样的,那么这个有没有什么统一的处理方法呢?
如果说 定义一个如:
type Result struct {
Code int `json:"code"`
Data interface{} `json:"data"`
Message string `json:"message"`
}
或者map[string]interface{},这种的话 那么这个iterface{}怎么处理data里面的数据呢
比如一个接口返回的数据:
{"code": 0,"data": [{"item": 210263,"status": 0}],"message": "Success"}
{"code": 0,"data": ["cont": 210263,"list": [xxxxxx]}],"message": "Success"}
这种有什么方法可以通用处理么?
我一般是这样的:
这样也没什么麻烦的,其实似乎并没有通用的方法,在后面你还是要单独处理不同类型的数据,解析不同格式的Data,类型转换,倒不如一次性定义好,能很大程度上避免出错