Gson lib解析错误预期BEGIN_OBJECT但是BEGIN_ARRAY

时间:2014-11-05 10:04:26

标签: android json parsing gson

获取以下JSON

的Gson解析错误

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);

2 个答案:

答案 0 :(得分:2)

JSON包含一个二维数组。因此,您应该将其解析为List<Lab>而不是List<List<Lab>>

答案 1 :(得分:0)

以上是JSON上面的工作Domain类

@SuppressWarnings("serial")
public class ScreeningResults implements Serializable{

//private Labs lab;
private List<List<Lab>> lab;


public List<List<Lab>> getLab() {
    return lab;
}

public void setLab(List<List<Lab>> lab) {
    this.lab = lab;
}