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オブジェクトの配列が含まれているようです。


それ以外の場合は、GSOM DOM スタイルの自動解析を使用していることを確認するために、Web サービスで使用する実際のコードを投稿することをお勧めします。

于 2012-07-26T11:51:46.643 に答える