3

可能重复:
GSON 抛出“预期 BEGIN_OBJECT 但为 BEGIN_ARRAY”?

场景:我正在使用 GSON 库解析一个 JSON 格式的 API。这是我正在解析的 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.

4

1 回答 1

2

如果你改变这一行怎么办:

public List<Options> options;

到:

public Options[] options;

看起来您的 JSON 包含一个Options对象数组。


否则我可以建议发布您在 Web 服务中使用的实际代码,以确认您使用的是 GSOM DOM 样式的自动解析。

于 2012-07-26T11:51:46.643 回答