Gson帮助解析数组 - 没有数组但没有数组

Dam*_*mir 1 java android gson

有人可以用Gson解析器帮我.当我从JSON和Result中删除更改时,它可以正常工作,但是如果更改它会抛出JsonParseException-Parse失败.

Result[] response = gson.fromJson(fileData.toString(), Result[].class);
Run Code Online (Sandbox Code Playgroud)

我有这样的课程

public class Result {
    public String start_time;
    public String end_time;
    public change[] change;
}
Run Code Online (Sandbox Code Playgroud)

public class change {
    public String id;
    public String name;
}
Run Code Online (Sandbox Code Playgroud)

和Json字符串一样

[
  {
        "start_time": "8:00",
        "end_time": "10:00",
        "change": [
            {
                "id": "1",
                "name": "Sam"
            },
            {
                "id": "2",
                "name": "John"
            }
        ]
    },
    {
        "start_time": "9:00",
        "end_time": "15:00",
        "change": [
            {
                "id": "1",
                "name": "Sam"
            },
            {
                "id": "2",
                "name": "John"
            }
        ]
    }
]
Run Code Online (Sandbox Code Playgroud)

谁能告诉我我做错了什么?知道为什么它不能用于数组吗?

Per*_*ion 5

如上所述,您需要使用列表.Gson在使用带有解析器的参数化类型方面有很好的文档,您可以在这里阅读更多相关信息.您的代码最终将如下所示:

Type listType = new TypeToken<List<Result>>() {}.getType();
List<Result> results = gson.fromJson(reader, listType);
for (Result r : results) {
    System.out.println(r);
}
Run Code Online (Sandbox Code Playgroud)