如何在改造 2.0 的 onResponse 上处理对象
How to handle object on onResponse of retrofit 2.0
这是我在改造 2.0 中获得响应的逻辑
call.enqueue(new Callback<ArrayList<Wallet>>() {
@Override
public void onResponse(Response<ArrayList<Wallet>> response, Retrofit retrofit) {
if (response.isSuccess()) {
// use response data and do some fancy stuff :)
loading.dismiss();
ArrayList<Wallet> orders = response.body();
Utility.displayToast("Wallet size is" + orders.size());
} else {
}
}
});
Data format from rest API is like this:
[
{
"description": "Cashback",
"amount": "20.00",
"type": "1",
"date": "11/03/2016"
},
{
"description": "CASH BACK",
"amount": "12.00",
"type": "1",
"date": "05/03/2016"
}
]
现在他们更改了 API 并且数据如下:
{
"error": false,
"wallet": [
{
"description": "Cashback",
"amount": "20.00",
"type": "1",
"date": "11/03/2016"
},
{
"description": "CASH BACK",
"amount": "12.00",
"type": "1",
"date": "05/03/2016"
}
]
}
如何处理ONResponse中的对象,解析数组中的钱包信息?
PoJo 必须改变。例如
public class NewWallet {
public boolean error;
public List<Wallet> wallet;
}
并让您的界面 return NewWallet
而不是 ArrayList<Wallet>
如果你的所有 api 都只是这样改变,那么最好使用模板。
public class ResponseDS<T> {
public boolean error;
public List<T> data;
}
现在您可以将电子钱包或任何其他对象作为 T 传递给带签名的响应。 :)
这是我在改造 2.0 中获得响应的逻辑
call.enqueue(new Callback<ArrayList<Wallet>>() {
@Override
public void onResponse(Response<ArrayList<Wallet>> response, Retrofit retrofit) {
if (response.isSuccess()) {
// use response data and do some fancy stuff :)
loading.dismiss();
ArrayList<Wallet> orders = response.body();
Utility.displayToast("Wallet size is" + orders.size());
} else {
}
}
});
Data format from rest API is like this:
[
{
"description": "Cashback",
"amount": "20.00",
"type": "1",
"date": "11/03/2016"
},
{
"description": "CASH BACK",
"amount": "12.00",
"type": "1",
"date": "05/03/2016"
}
]
现在他们更改了 API 并且数据如下:
{
"error": false,
"wallet": [
{
"description": "Cashback",
"amount": "20.00",
"type": "1",
"date": "11/03/2016"
},
{
"description": "CASH BACK",
"amount": "12.00",
"type": "1",
"date": "05/03/2016"
}
]
}
如何处理ONResponse中的对象,解析数组中的钱包信息?
PoJo 必须改变。例如
public class NewWallet {
public boolean error;
public List<Wallet> wallet;
}
并让您的界面 return NewWallet
而不是 ArrayList<Wallet>
如果你的所有 api 都只是这样改变,那么最好使用模板。
public class ResponseDS<T> {
public boolean error;
public List<T> data;
}
现在您可以将电子钱包或任何其他对象作为 T 传递给带签名的响应。 :)