这是我在改装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中的对象并解析数组中的钱包信息?
如果您的所有API都只是这样更改的,那么最好使用模板。
public class ResponseDS<T> {
public boolean error;
public List<T> data;
}
现在,您可以将钱包或任何其他对象作为T传递给带有签名的响应。:)
PoJo必须改变。例如。
public class NewWallet {
public boolean error;
public List<Wallet> wallet;
}
让你的界面返回NewWallet
,而不是ArrayList
我知道这个问题已经被问了很多,但我所看到的答案都没有帮助我澄清这个问题。我需要更多的指导方针,而不是一个具体的答案。 错误,没有这样的用户 到目前为止,我所尝试的是为列表中收到的每个对象创建一个类: 和Api,我认为这就是问题所在: 提前感谢!!
我正在使用调用web服务,而reverfit会引发一个失败,来自“throwable”的消息会给我 我假设这是因为.NET web服务抛出了一个错误而没有返回JSON。但是为了证明这一点,我需要能够看到中的原始响应。有没有什么我能做到的? 这是我使用的代码
有没有一种方法来捕获400到599超文本传输协议状态在onFail()方法通过使用改造2.0?每当其他api返回400,401等,然后改型像200响应,并在on成功()上处理它。我怎样才能实现呢?
当没有数据avilable时,它返回以下JSON: http://www.omdbapi.com/?t=asdasdas
下面是一个json响应的示例。正如您所看到的,像:news、number_likes、number_comment、number_post、user和owner这样的字段总是存在。但是像:place、place_mark、comment、album、photo这样的字段并不总是存在。这取决于新闻的类型。 请帮帮我!为了正确的json反序列化,我需要做什么?也许有人有经验,在编写自定义转炉工厂或可以
我使用的是最新版本的改造,改造2,v2.0.0-beta3。API响应是User对象或空响应(空值)。如果我发送正确的用户名/密码,那么句柄将进入带有成功用户对象的响应方法。但是如果发送错误的密码,那么API将不返回任何内容,响应头中的值很少。但是我在onFailure(可抛出)中得到了MalformedJsonExc0019。 “com.google.gson.stream.MalformedJ