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

时间:2011-08-03 19:44:41

标签: java android gson

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

Result[] response = gson.fromJson(fileData.toString(), Result[].class);

我有这样的课程

public class Result {
    public String start_time;
    public String end_time;
    public change[] change;
}

public class change {
    public String id;
    public String name;
}

和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"
            }
        ]
    }
]

有人可以告诉我我做错了什么吗?知道为什么它不适用于数组吗?

1 个答案:

答案 0 :(得分:5)

根据建议,您需要使用列表。 Gson有很好的文档可以将参数化类型与解析器一起使用,你可以阅读更多关于它的信息here。您的代码最终将如下所示:

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