Android Gson lib分析错误应为BEGIN\u对象,但为BEGIN\u数组

Android Gson lib分析错误应为BEGIN\u对象,但为BEGIN\u数组,android,json,parsing,gson,Android,Json,Parsing,Gson,为低于JSON的Gson解析获取低于错误 11-05 15:34:00.882:W/System.err(28673):com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:应为BEGIN_对象,但在第1行第5923列为BEGIN_数组 { "lab": [ [ { "id": "147", "messagelab_id": "test",

为低于JSON的Gson解析获取低于错误

11-05 15:34:00.882:W/System.err(28673):com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:应为BEGIN_对象,但在第1行第5923列为BEGIN_数组

 {
  "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;
}


}
Gson gson = new Gson();
  ScreeningResults screeningResults=gson.fromJson(response.toString(),ScreeningResults.class);
@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;
}

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

,这里是上述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;
}


}
Gson gson = new Gson();
  ScreeningResults screeningResults=gson.fromJson(response.toString(),ScreeningResults.class);
@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;
}
@SuppressWarnings(“串行”)
公共类ScreeningResults实现可序列化{
//私人实验室;
私人名单实验室;
公共列表getLab(){
返回实验室;
}
公共无效设置实验室(列表实验室){
this.lab=实验室;
}

您的json无效,将“some text”替换为编辑的“some text”,假设json有效,您的json结构如下“lab”:[[因此它必须是列表而不是列表,它还应该对
lab[][]
感到满意。当您说
Labs lab
如果查找
“lab”:{/*在Labs类中定义的内容*/}
,即object@zap1我已更改为私有列表实验室;不是它的working@kondal很高兴它成功了。那么请接受答案;)很好luck@kondal如果解决了您的问题,请接受答案。请阅读此链接: