baseresponse响应类_改造-使用基类解析通用api响应

在Android应用开发中使用Retrofit进行REST API调用时,由于所有API响应都包含相同的"info"键和不同键名的"data"键,因此可以创建一个基类来解析通用响应。示例响应包括"info"(状态码和消息)和"data"(不同的API有不同的键)。问题在于如何解析"data"部分。解决方案是通过在基类`CloudBaseResponse`中使用泛型来映射API响应,以便在Retrofit中更方便地处理各种类型的"data"数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

I am using retrofit for rest api calls for my android app development. Since my all api response has "info"(Note that all api will have same key name) and "data" (Note that different apis have different key names) parameter, I have used a base class for the api responses. Below are the sample responses from API

Response 1

{

"info":{

"statusCode":200,

"message":"OK"

},

"data":{

"userId":2,

"userName":"riyas"

}

}

Response 2

{

"info":{

"statusCode":200,

"message":"OK"

},

"data":{

"vegId":2,

"vegName":"Potatoa"

}

}

I have created a base class named CloudBaseResponse and was able to get data in response.info . But I have no idea to parse the **data** . Please suggest me a way to handle using 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;

}

}

解决方案

You can use Generics to map your api response.

public class CloudBaseResponse {

@SerializedName("info")

private Info info;

@SerializedName("data")

private T data;

// Getters Setters..

}

public class Info {

private String status;

private String message;

// Getters Setters..

}

For example you have a Vegetable class.

public class Vegetable {

private int vegetableId;

private String vegetableName;

// Getters Setters..

}

Later you can use with Retrofit like the following code:

Call> getVegetables();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值