【发布时间】:2015-01-01 11:22:48
【问题描述】:
Gson 解析低于 JSON 时出现错误
11-05 15:34:00.882: W/System.err(28673): com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: 预期 BEGIN_OBJECT 但在第 1 行第 5923 列是 BEGIN_ARRAY
{
"lab": [
[
{
"id": "147",
"messagelab_id": "test",
"patientlab_ic": "abc",
"patientlab_name": "some text"
}
]
]
}
我在上面的 JSON 中使用了下面的模型类
public class ScreeningResults implements Serializable{
private Labs lab;
//@SerializedName("all_results")
//private List<LabResult> labResults;
public Labs getLab() {
return lab;
}
public void setLab(Labs lab) {
this.lab = lab;
}
}
public class Labs implements Serializable{
private List<Lab> lab;
public List<Lab> getLab() {
return lab;
}
public void setLab(List<Lab> lab) {
this.lab = lab;
}
}
我正在使用 belo 行来解析 JSON 以上的序列化
Gson gson = new Gson();
ScreeningResults screeningResults=gson.fromJson(response.toString(),ScreeningResults.class);
【问题讨论】:
-
您的 json 无效,请将 "some text", 替换为 "some text"
-
已编辑假设 JSON 有效
-
因为你的 json 结构是这样的“实验室”: [ [ 所以它必须是 List
- >
-
除了列表,它还应该对
Lab[][]感到满意。当你说Labs lab时,如果寻找"lab" : { /* content defined in Labs class */ },即一个对象 -
@zap1 我已更改为私有列表
- > 实验室;不是它的工作