GSON parsing with Retrofit Flickr JSON analysis

I seem to have the following problem. I use retrofit to get a JSON file and parse it into a java object.

The URL I'm considering: https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=2ef592bfddc86f508550184ec706a2fc&tags=gent&per_page=2&format=json

which answers:

jsonFlickrApi({"photos":{"page":1,"pages":130008,"perpage":2,"total":"260016","photo":[{"id":"15817874286","owner":" 36687364@N07 ","secret":"e480e6fe0c","server":"7475","farm":8,"title":"3D visualisatie","ispublic":1,"isfriend":0,"isfamily":0},{"id":"15817785516","owner":" 36687364@N07 ","secret":"132f12dff1","server":"7496","farm":8,"title":"schetsontwerp","ispublic":1,"isfriend":0,"isfamily":0}]},"stat":"ok"}) 

I believe the problem is jsonFlickrApi before replying.

When executing the following code:

  @GET("/rest/") void getPhotos(@Query("method") String method,@Query("api_key") String apiKey,@Query("tags") String tags,@Query("per_page")String perPage,@Query("format") String format, Callback<FlickrResult> data); 

and

 flickerRestAPI.getPhotos("flickr.photos.search","2ef592bfddc86f508550184ec706a2fc","gent","10","json",new Callback<FlickrResult>() { @Override public void success(FlickrResult photos, Response response) { Log.i(TAG, " " + photos.toString()); } @Override public void failure(RetrofitError error) { Log.e(TAG,"Failed"); Log.e(TAG," " +error.getUrl()); Log.e(TAG," "+error.getMessage()); } }); } 

I get

  11-21 19:15:54.476 12058-12058/be.hogent.festivalproject E/MainActivity﹕ com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $ 

Used wrapper classes:

 public class FlickrResult { @SerializedName("photos") public FlickrPhotos photos; 

}

 public class FlickrPhotos { public int page; public String pages; public int perpage; public String total; public ArrayList<FlickrPhoto> photo; public String stat;} public class FlickrPhoto { public String id; public String owner; public String secret; public String server; public int farm; public String title; public int ispublic; public int isfriend; public int isfamily;} 
+5
source share

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


All Articles