Retrofit 2 Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $

135
19 марта 2022, 10:30

Собственно, ошибка, как у всех, делаю как в ответах здесь, но работает неправильно.

Код с сайта:
[
  {
    "userId": 1,
    "id": 1,
    "title": "quidem molestiae enim"
  },
  {
    "userId": 1,
    "id": 2,
    "title": "sunt qui excepturi placeat culpa"
  },
  {
    "userId": 1,
    "id": 3,
    "title": "omnis laborum odio"
  }
]
public class Album {
    @SerializedName("id")
    @Expose
    private int id;
    @SerializedName("title")
    @Expose
    private String title;
    @SerializedName("userId")
    @Expose
    private int userId;
//getters, setters...
}
public interface APIService {
    @POST("albums/")
    Call<List<Album>> loadAlbums();
}
------------------код запуска ретрофит---------------------
           final Retrofit retrofit = new Retrofit.Builder()
                    .baseUrl("https://jsonplaceholder.typicode.com/")
                    .addConverterFactory(GsonConverterFactory.create())
                    .build();
            final APIService apiService = retrofit.create(APIService.class);
            Call<List<Album>> listCall = apiService.loadAlbums();
            listCall.enqueue(new Callback<List<Album>>() {
                @Override
                public void onResponse(Call<List<Album>> call, Response<List<Album>> response) {
                    if (response.isSuccessful()) {
                        DummyContent.ITEMS = response.body();
                        recyclerView.getAdapter().notifyDataSetChanged();
                        Log.d("OK", "responce is Successful");
                    }
                }
                @Override
                public void onFailure(Call<List<Album>> call, Throwable t) {
                    Log.e("failure", "Something wrong " + t.getMessage());
                }
            });

Так происходит onFailure, ещё пытаюсь сделать так:

public class AlbumList {
    List<Album> array;
    public List<Album> getAlbums() {
        return array;
    }
    public void setAlbums(List<Album> albums) {
        this.array = albums;
    }
}

public interface APIService {
    @POST("albums/")
    Call<AlbumList> loadAlbums();
}

В этом случае, array всегда null... В чём проблема? Как поправить ошибку? Спасибо.

Answer 1

Как оказалось, использовал не тот тип запроса - надо было GET, а я POST)

READ ALSO
Ошибка при запуске теста xlsx создания

Ошибка при запуске теста xlsx создания

Хотя библиотке poi скачал полностью и добавил в проект

81
Получение изображения из AWS S3 для использования на сайте. Java

Получение изображения из AWS S3 для использования на сайте. Java

Я разобрался как загружать файл в bucket aws s3, научился его скачивать в директорию на компьютереНо не могу понять каким способом загружать файлы...

94
Изменение цвета в верхней панели (colorPrimaryDark)

Изменение цвета в верхней панели (colorPrimaryDark)

У меня есть фрагменты, и при нажатии на любой фрагмент в верхней части панели (там, где часы) должен измениться цветКак реализовать?

95