Разбор массива JSON с массивом объектов внутри с помощью Retrofit - PullRequest
2 голосов
/ 21 марта 2020

у меня есть этот фрагмент ответа json от конечной точки, где мне нужно получить какие-то новости, но это своего рода возвращает мне неверную информацию или, возможно, я делаю это неправильно:

{
    "data": [
        {
            "alignImages": "left",
            "data": [
                {
                    "content": "Despus de dos aos de la operacin y una intensiva terapia, jvenes que no podan mover sus miembros inferiores y superiores ahora pueden comer, cepi",
                    "id": 179,
                    "title": "Ciruga que reconecta los nervios le devolvi a 13 tetrapljicos la movilidad en",
                    "url_detail": "https://www.elespectador.com/noticias/salud/cirugia-que-reconecta-los-nervios-le-devolvio-13-tetraplejicos-la-movilidad-en-brazos-y-codos-articulo-869",
                    "url_image": "https://storage.googleapis.com/sitidoctor-161813.appspot.com/images/noticia_2.png"
                },
                {
                    ...
                }
            ],
            "imgHeader": "https://storage.googleapis.com/sitidoctor-161813.appspot.com/images/Noticias_Salud.png",
            "titleHeader": "Noticias Salud"
        }
    ],
    "message": "success!",
    "status": 200
}

Это модель, которую я использую для анализа ответа на запрос экземпляра модернизации:

public class NewsResponse {

    @SerializedName("data")
    @Expose
    private List<New> data = null;
    @SerializedName("message")
    @Expose
    private String message;
    @SerializedName("status")
    @Expose
    private Integer status;

    public List<New> getData() {
        return data;
    }

    public void setData(List<New> data) {
        this.data = data;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

}

, и я делаю запрос, используя модификацию следующим образом:

private void handleResponse(NewsResponse newsResponse) {
        Log.e("response", newsResponse.getData().toString());
        if (newsResponse.getData().size() > 0){
            List<New> n = new ArrayList<>();
            for (int i = 0; i < newsResponse.getData().size(); i++){
                New nn = newsResponse.getData().get(i);
                n.add(nn);
            }
            callback.onSuccess(n);
        }
}

, но я всегда получаю единственное и пустое значение, как будто возвращает внутренний массив данных как объект, но не может получить данные, я все испробовал и ничего не получил, есть идеи?

Ссылка на imagen в отладчике

1 Ответ

1 голос
/ 25 марта 2020

Рассматривая ваше изображение отладчика, ваш newsResponse.getData (). Size () равен 1. Единственный элемент в списке имеет id, title, content, uridetail как ноль. Вы правильно обрабатываете ответ. С вашим ответом что-то не так. Пожалуйста, проверьте, правильно ли вы делаете сетевой вызов

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...