Java.lang.IllegalStateException: expected BEGIN_ARRAY, but BEGIN_OBJECT in row 1 of column 2

I use Retro Fit to connect to the API online. But I get this error when trying to parse the returned data.

 retrofit.RetrofitError: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 

The returned data is in This format and model for the data is also given below:

 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 ... 
+6
source share
1 answer

Change List<mGooglePlacesApiResponse> mGp to mGooglePlacesApiResponse mGp . Your JSON contains an object not a list.

@edit

Btw, html_attributions - array

@ edit2

Well, I see you fixed your html_attrubutions

+8
source

Source: https://habr.com/ru/post/972120/


All Articles