有人可以用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)
谁能告诉我我做错了什么?知道为什么它不能用于数组吗?
如上所述,您需要使用列表.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)