微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java.lang.IllegalStateException:预期BEGIN_ARRAY但在第1行第2列是BEGIN_OBJECT

我正在使用Retro Fit在线连接到API.但我在尝试解析返回的数据时遇到此错误.
retrofit.RetrofitError: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2

返回的数据为This格式,数据模型如下:

iGPlaceApi.getStreams(ITEMS_PER_PAGE,pageNumber * ITEMS_PER_PAGE,new Callback<List<mGooglePlacesApiResponse>>() {

            @Override
            public void success(List<mGooglePlacesApiResponse> mGp,Response response) {
                int n = mGp.size();
                Object asa = mGp.toArray();
            }

            @Override
            public void failure(RetrofitError retrofitError) {
                String error = retrofitError.toString();
            }
        });

public class mGooglePlacesApiResponse {

    public String html_attributions;
    //public List<String> html_attributions;
    public String next_page_token;
    public List<place> results;
}

public class place {

    public Geometry geometry;
    public String icon;
    public String id;
    public String name;
    public openingHours opening_hours;
    public List<Photo> photo
    ...

解决方法

更改列表< mGooglePlacesApiResponse> mGp到mGooglePlacesApiResponse mGp.您的JSON包含对象而不是列表.

@编辑

顺便说一句,html_attributions是一个数组

@ EDIT2

好吧,我看到你纠正了你的html_attrubutions

原文地址:https://www.jb51.cc/java/239855.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐