Дооснащение жалуется на то, что этот JSON не является массивом - PullRequest
0 голосов
/ 14 ноября 2018

Я знаю, что об этом спрашивали много раз, но я не нашел своего решения.

Expected BEGIN_ARRAY but was STRING at line 1 column 1 path $

Мой json, я ожидаю массив Модель []:

[{
    "id": 1,
    "category": "Category 1",
    "question": "Bla bla",
    "answer": "<p>Bla bla bla.</p>\n",
    "lastModified": "2018-05-24T12:28:37.41"
},{
    "id": 2,
    "category": "Category 1",
    "question": "Bla bla",
    "answer": "<p>Bla bla bla.</p>\n",
    "lastModified": "2018-05-24T12:28:37.41"
},
{
    "id": 3,
    "category": "Category 1",
    "question": "Bla bla",
    "answer": "<p>Bla bla bla.</p>\n",
    "lastModified": "2018-05-24T12:28:37.41"
},
{
    "id": 4,
    "category": "Category 1",
    "question": "Bla bla",
    "answer": "<p>Bla bla bla.</p>\n",
    "lastModified": "2018-05-24T12:28:37.41"
}]

Если я скопирую ответ с сервера и:

final String response = "...";
final Gson gson = new Gson();
final FAQ[] faqs = gson.fromJson(response, FAQ[].class);
Log.d("TAG", "TEST: " + faqs[0].getAnswer());

Это работает как положено ... что может быть не так с ответом сервера?

РЕДАКТИРОВАТЬ: интерфейс:

@Headers({
        "Accept-Encoding: gzip, deflate, br",
        "Accept-Language: it-IT"
})
@GET("faq")
Call<FAQ[]> getFAQs(@Query(Constants.API_PARAM_PAGE) int page,
                    @Query(Constants.API_PARAM_PAGE_SIZE) int pageSize);

1 Ответ

0 голосов
/ 15 ноября 2018

Решил мою собственную проблему, удалив:

"Accept-Encoding: gzip, deflate, br"

Если вы предоставите этот заголовок, Retrofit ожидает, что вы предоставите собственную реализацию декомпрессии.Мне нужен отпуск.

...