Expected BEGIN_ARRAY but was BEGIN_OBJECT

报错:
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

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值