Android: ошибка при разборе массива JSON с использованием библиотеки GSON
Возможный дубликат:
GSON выбрасывает "Ожидаемый BEGIN_OBJECT, но был BEGIN_ARRAY"?
Сценарий: я анализирую API в формате JSON с использованием библиотеки GSON. Вот файл JSON, который я анализирую:
{
"questions": [
{
"question_1": "Question 1",
"options": [
"option_1 : option1",
"option_2 : option2",
"option_3 : option 3",
"option_4 : option 4"
]
},
{
"question_2": "Question 2",
"options": [
"option_1 : option 1",
"option_2 : option 2",
"option_3 : option 3"
]
}
]
}
И мой объектный класс выглядит так:
public class Practise_Question_Object {
public List<Questions> questions;
public class Questions {
@SerializedName("question")
public String Question;
public List<Options> options;
public class Options {
public String Option_1;
public String Option_2;
public String Option_3;
public String Option_4;
}
}
Проблема Моя проблема в том, что всякий раз, когда я пытаюсь проанализировать значения, это показывает мне ошибку java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 53
если я перешлю "параметры" из массива в объект, то я могу легко разобрать. Но в моем проекте (со стороны PHP) я не могу использовать Object.
1 ответ
Что делать, если вы измените эту строку:
public List<Options> options;
чтобы:
public Options[] options;
Похоже, ваш JSON содержит массив Options
объекты.
В противном случае я могу предложить опубликовать фактический код, который вы используете в веб-сервисе, просто чтобы подтвердить, что вы используете автоматический анализ в стиле GSOM DOM.