安卓 : Error in parsing JSON array using GSON library

标签 android json gson android-parser

<分区>

Possible Duplicate:
GSON throwing “Expected BEGIN_OBJECT but was 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 端)我不能使用对象。

最佳答案

如果你改变这一行会怎么样:

public List<Options> options;

到:

public Options[] options;

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


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

关于安卓 : Error in parsing JSON array using GSON library,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11666500/

相关文章:

java - 使用 gson 在内部将对象存储为 json 是常见做法吗?

java - "Back"启动mapview Activity 时不起作用

android - 无法从共享首选项中保存的 URI 加载图像

android - Android 的图像效果?

android - FirebaseAuth - 让用户使用任何提供商更改密码 - Android

使用 Hive 解析 json

asp.net-mvc - 如何在 ASP.NET MVC 中将数据传递给 JsonResult?

c# - 使用 RestSharp 将 JSON 反序列化为对象或数组

java - 在 Java 中使 JSON 变得漂亮的最佳方法

java - 如何正确处理重要的未检查异常