报错:
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 21 path $.data
问题原因:
Bean对象建错了. 其中的data应该是一个Object, 错写成List.
Json字符串如下:
{
"data": {
"banner": [
{
"aid": "7",
"catid": "0",
"description": "asd",
"end_time": "1432915200",
"imgurl": "/upload/ads/2015-05-06/5549ac6f05399.jpg",
"is_open": "1",
"link": "http://",
"order": "50",
"start_time": "1430755200",
"title": "asd"
}
],
"goods": [
{
"addtime": "123123123",
"brokerage": "600.00",
"catid": "2",
"collection": "0",
"id": "4",
"status": "1",
"store": "120",
"title": "我是商品1",
"userid": "2"
}
]
},
"status": 0
}
而对应的代码是这样写的:
public class MallBean {
public List<MallData> data;
public int status;
public class MallData{
public List<MallDataBanner> banner;
public List<MallDataCat> cat;
public MallDataFilter filter;
public List<MallDataGoods> goods;
}
public class MallDataBanner{
public String aid;
public String catid;
public String description;
public String end_time;
public String imgurl;
public String is_open;
public String link;
public String order;
public String start_time;
public String title;
}
public class MallDataCat{
public String addtime;
public String arrchildid;
public String arrparentid;
public String catid;
public String catname;
public String child;
public String image;
public String is_show;
public String listorder;
public String pid;
public String style;
}
public class MallDataFilter{
public int catid;
public String keywords;
}
public class MallDataGoods{
public String addtime;
public String brokerage;
public String catid;
public String collection;
public String content;
public String description;
public String id;
public String images;
public String is_delete;
public String is_recommend;
public String is_sale;
public String keywords;
public String listorder;
public String market_price;
public String on_sale;
public String price;
public String sales;
public String status;
public String store;
public String title;
public String userid;
}
}
代码来自于http://blog.csdn.net/ququ9376/article/details/45566751
其中MallBean对象建错了,
public class MallBean {
public List data;
public int status;
...
}
MallBean中的data是一个对象,而不是数组, 所以应该改为:
public MallData data;
具体解释详见GnCalvary的博客:http://blog.csdn.net/ququ9376/article/details/45566751