Muh*_*s M 4 android gson retrofit2
我正在使用改造用于我的Android应用程序开发的休息api调用.由于我的所有api响应都有"info"(注意所有api将具有相同的键名)和"data"(注意不同的api具有不同的键名)参数,我已经使用了基类来进行api响应.以下是API的示例回复
回应1
{
"info":{
"statusCode":200,
"message":"OK"
},
"data":{
"userId":2,
"userName":"riyas"
}
}
Run Code Online (Sandbox Code Playgroud)
回应2
{
"info":{
"statusCode":200,
"message":"OK"
},
"data":{
"vegId":2,
"vegName":"Potatoa"
}
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个名为CloudBaseResponse的基类,并且能够获取数据response.info.但我不知道要解析**data**.请建议我使用Retrofit处理的方法
public class CloudBaseResponse {
public BaseResponse response;
public BaseResponse getResponse() {
return response;
}
public void setResponse(BaseResponse response) {
this.response = response;
}
public class BaseResponse {
public Info info;
}
public class Info{
public String status;
public String message;
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用它Generics来映射您的api响应.
public class CloudBaseResponse<T> {
@SerializedName("info")
private Info info;
@SerializedName("data")
private T data;
// Getters Setters..
}
public class Info {
private String status;
private String message;
// Getters Setters..
}
Run Code Online (Sandbox Code Playgroud)
例如,你有一个Vegetable班级.
public class Vegetable {
private int vegetableId;
private String vegetableName;
// Getters Setters..
}
Run Code Online (Sandbox Code Playgroud)
稍后您可以Retrofit像下面的代码一样使用:
Call<CloudBaseResponse<Vegetable>> getVegetables();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2160 次 |
| 最近记录: |