Я пытаюсь разобрать следующий json-объект с помощью retrofit 2.1.0, но я не знаю, почему нет данных в поле данных он всегда пуст.parsing json object с массивом retrofit
{
"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": []
}
]
}
Мой класс класс идет сюда.
TvChannel
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();
}
}
Вот метод, который называют АНИ
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 вместо вашей модели – Ayaanp
используйте этот сайт, чтобы преобразовать ваш 'JSOn' в' POGO' 'http://www.jsonschema2pojo.org/ – sushildlh
Я решил проблему. Некоторые, как я извлекал поле ** данные ** пустым, и это вызывало проблемы. Спасибо всем за помощь !!! – kamboj