【发布时间】:2017-05-12 14:15:16
【问题描述】:
我正在尝试使用改造 2.1.0 解析下一个 json 对象,但我不知道为什么在 data 字段中没有任何数据,它总是为空。
{
"status": "OK",
"message": "Upload succesfull",
"data": [
{
"channel": "madrid",
"date": "20161212221",
"metadata": {
"id": "tvmadrid",
"channel_id": "tvmadrid.com",
"channel_name": "mad",
},
"promos": []
},
{
"channel": "barca",
"date": "20161233232",
"metadata": {
"id": "tvbarca",
"channel_id": "tvbarca.com",
"channel_name": "barca",
},
"promos": []
}
]
}
我的模型课放在这里。
电视频道
public class TvChannel {
private String status;
private String message;
private Data[] data;
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public Data[] getData() {
return data;
}
public void setData(Data[] data) {
this.data = data;
}
@Override
public String toString() {
return "status " + status + "\n"
+ "message " + message + "\n"
+ "Data " + data.toString();
}
}
这是一个调用API的方法
public void getTvChannel(User user, MultipartBody.Part body) {
//user.getData().getAutenticate(),
Call<TvChannel> callTvChannel = getAPI().listTvChannel(user.getData().getAutenticate(), body);
callTvChannel.enqueue(new Callback<TvChannel>() {
@Override
public void onResponse(Call<TvChannel> call, Response<TvChannel> response) {
if (response.isSuccessful()) {
Log.d(TAG, "body to string: " + response.body().getStatus());
TvChannel tvChannel = response.body();
ArrayList<Data> datas = new ArrayList<Data>(Arrays.asList(response.body().getData()));
Log.d(TAG + " getTvChannel ", " onResponse: status: " + tvChannel.getStatus() + " message: " + tvChannel.getMessage() );
for (Data data : datas) {
Log.d(TAG,data.toString());
}
} else {
Log.d(TAG + " getTvChannel", " onResponse " + "Error Code " + response.code());
}
}
@Override
public void onFailure(Call<TvChannel> call, Throwable t) {
Log.d(TAG + " getTvChannel ", " onFailure " + " Didn't work " + t.getMessage() + " " + t.getCause() + " \n" + Arrays.toString(t.getStackTrace()));
}
});
}
提前致谢。
【问题讨论】:
-
尝试在模型本身中使用 ArrayList
-
使用此站点将您的
JSOn转换为POGO`jsonschema2pojo.org -
我已经解决了这个问题。我如何检索字段 data 为空,这导致了麻烦。谢谢大家的帮助!!!
-
您是如何解决问题的?我无法检索数据...
标签: android arrays json retrofit