Gson预计BEGIN_ARRAY但是在第1行第2列路径$ BEGIN_OBJECT

时间:2017-06-05 14:35:52

标签: android json android-volley

这是我的arraylist

 ArrayList<Eat> eatList = gson.fromJson(jsonString, new 
 TypeToken<ArrayList<Eat>>() {
            }.getType());

这是我的json:http://www.mocky.io/v2/592fdc32110000ef12b392cc

这是我的模特

public class Eat{

private String title,firstItemTitle,firstItemSutitle,
secondItemTitle,secondItemSutitle,
firstItemPrice,secondItemPrice,
firstItemImage,secondItemImage;


public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}

public String getFirstItemTitle() {
    return firstItemTitle;
}

public void setFirstItemTitle(String firstItemTitle) {
    this.firstItemTitle = firstItemTitle;
}

public String getFirstItemSutitle() {
    return firstItemSutitle;
}

 public void setFirstItemSutitle(String firstItemSutitle) {
    this.firstItemSutitle = firstItemSutitle;
 }

 }

1 个答案:

答案 0 :(得分:4)

由于您的JSON不是JSON数组,而是包含数组的JSON 对象,因此您需要编写一个包含ArrayList的类:

public class EatResponse {
    @SerializedName("eat")
    private ArrayList<Eat> eatList;

    public ArrayList<Eat> getEatList() {
        return eatList;
    }
}

然后,你只需要通过一个看起来像这样的调用从你的JSON中解析它:

EatResponse response = gson.fromJson(json, EatResponse.class);
ArrayList<Eat> eatList = response.getEatList();