2016-12-05 2 views
0
와 STRING 내가 좋아하는 Retrofit 2의 응답을 받고 있어요

이었다예상 BEGIN_OBJECT하지만 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에서 데이터를 deserialize하려고 할 때 :

FeedServiceResponse feedServiceResponse = gson.fromJson(response.body().toString(), FeedServiceResponse.class); 

나는 다음과 같은 오류 얻을 : StackOverflow

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)  

내가 읽고 기타 질문/답변을하지만 캔트 내가 뭘 잘못 찾을 수가.

+0

왜 downvote - 나는 비슷한 게시물을 읽고 난 잘 설명 된 질문을 만들려고 노력했는지 설명하십시오. 내 가정에 대해 틀렸다면 왜 그 이유를 알고 싶습니다. – Mes

+0

당신은 json을 잘못하고 있다는 가정이 틀렸다 ... 어떤 질문을 던집니다. * 의심스러운 다른 질문을 읽었습니다. – Selvin

+0

흠, 괜찮습니다. 그것에 대해 생각해 봐야합니다. – Mes

답변

0

서버가 JSON 데이터에 응답하지 않는 것으로 보입니다. 검사 도구를 사용하거나 로깅을 활성화하여 검사해야합니다.