有人可以帮我解决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"
}
]
}
]
有人可以告诉我我做错了什么吗?知道为什么它不适用于数组吗?
答案 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);
}