Я получаю ответ от Retrofit 2
как:Ожидаемое BEGIN_OBJECT но STRING с Gson
{"error":"0","posts":[{"account_id":61,"industry_id":1,"company_id":1,"profession_id":1,"description":"Demo Post 13","tags":"Cinema","created_at":"2016-12-05 10:47:41","totalFlags":0,"totalComments":0},{"account_id":65,"industry_id":2,"company_id":13,"profession_id":11,"description":"Demo Post 12","tags":"Cinema","created_at":"2016-12-05 10:47:33","totalFlags":0,"totalComments":0},{"account_id":65,"industry_id":2,"company_id":13,"profession_id":11,"description":"Demo Post 11","tags":"Culture","created_at":"2016-12-05 10:47:17","totalFlags":0,"totalComments":0}]}
и я объявил два пункта:
public class FeedServiceResponse implements Serializable {
private String error;
private FeedServiceResponseItem[] posts;
// getters/setters omitted
}
и
public class FeedServiceResponseItem implements Serializable {
private int account_id;
private int industry_id;
private int company_id;
private int profession_id;
private String description;
private String tags;
private String created_at;
private String totalFlags;
private int totalComments;
// again getters/setters omitted
}
но внутри onResponse()
от Retrofit
, когда я пытаюсь десериализовать данные следующим образом:
FeedServiceResponse feedServiceResponse = gson.fromJson(response.body().toString(), FeedServiceResponse.class);
Я получаю следующее сообщение об ошибке:
12-05 17:15:17.318 16724-16724/MY_PACKAGE.mock E/AndroidRuntime: FATAL EXCEPTION: main
Process: MY_PACKAGE.mock, PID: 16724
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:224)
at com.google.gson.Gson.fromJson(Gson.java:887)
at com.google.gson.Gson.fromJson(Gson.java:852)
at com.google.gson.Gson.fromJson(Gson.java:801)
at com.google.gson.Gson.fromJson(Gson.java:773)
at MY_PACKAGE.main.fragments.feed.FeedRepository$1.onResponse(FeedRepository.java:50)
at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:68)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5086)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:385)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:213)
at com.google.gson.Gson.fromJson(Gson.java:887)
at com.google.gson.Gson.fromJson(Gson.java:852)
at com.google.gson.Gson.fromJson(Gson.java:801)
at com.google.gson.Gson.fromJson(Gson.java:773)
at MY_PACKAGE.main.fragments.feed.FeedRepository$1.onResponse(FeedRepository.java:50)
at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:68)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5086)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
Я прочитал другие вопросы/ответы на StackOverflow
, но не могу показаться, чтобы найти то, что я делаю неправильно.
Пожалуйста, объясните, почему downvote - я прочитал похожие сообщения, и я попытался создать хорошо объясненный вопрос. Если я ошибаюсь в своих предположениях, я хотел бы знать, почему и удалить вопрос. – Mes
Ваше предположение о том, что вы получаете json, ошибочно ... Что делает * Я прочитал другие вопросы * сомнительно – Selvin
Хм, хорошо, это интересная мысль - мне нужно подумать об этом – Mes