amitshekhariitbhu / Fast-Android-Networking

🚀 A Complete Fast Android Networking Library that also supports HTTP/2 🚀
https://outcomeschool.com
Apache License 2.0
5.68k stars 956 forks source link

How to Convert addConverterFactory #295

Open SunryTeang opened 6 years ago

SunryTeang commented 6 years ago

how to addConverterFactory(GsonConverterFactory.create()) like retrofit

------- beginning of crash 06-09 14:18:37.753 5588-5588/sunry.yts.movie E/AndroidRuntime: FATAL EXCEPTION: main Process: sunry.yts.movie, PID: 5588 com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $ at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:226) at com.google.gson.Gson.fromJson(Gson.java:927) at com.google.gson.Gson.fromJson(Gson.java:892) at com.google.gson.Gson.fromJson(Gson.java:841) at com.google.gson.Gson.fromJson(Gson.java:813) at sunry.yts.movie.servicemanager.ApiManager$getApi$1.onResponse(ApiManager.kt:50) at com.androidnetworking.common.ANRequest.deliverSuccessResponse(ANRequest.java:725) at com.androidnetworking.common.ANRequest.access$6500(ANRequest.java:78) at com.androidnetworking.common.ANRequest$6.run(ANRequest.java:707) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756) Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $ at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:385) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:215) at com.google.gson.Gson.fromJson(Gson.java:927)  at com.google.gson.Gson.fromJson(Gson.java:892)  at com.google.gson.Gson.fromJson(Gson.java:841)  at com.google.gson.Gson.fromJson(Gson.java:813)  at sunry.yts.movie.servicemanager.ApiManager$getApi$1.onResponse(ApiManager.kt:50)  at com.androidnetworking.common.ANRequest.deliverSuccessResponse(ANRequest.java:725)  at com.androidnetworking.common.ANRequest.access$6500(ANRequest.java:78)  at com.androidnetworking.common.ANRequest$6.run(ANRequest.java:707)  at android.os.Handler.handleCallback(Handler.java:751)  at android.os.Handler.dispatchMessage(Handler.java:95)  at android.os.Looper.loop(Looper.java:154)  at android.app.ActivityThread.main(ActivityThread.java:6077) 

hasnain-ahmad commented 6 years ago

@SunryTeang Did you find the solution?

zigic88 commented 6 years ago

@SunryTeang you can use jackson parser https://amitshekhar.me/Fast-Android-Networking/jackson_parser_support.html

hasnain-ahmad commented 6 years ago

@zigic88 I have configured Gson parse like this in my project. It resolves the issue.

GsonBuilder builder;
Gson gson;

builder = new GsonBuilder();
builder.excludeFieldsWithModifiers(Modifier.FINAL, Modifier.TRANSIENT, Modifier.STATIC);
builder.excludeFieldsWithoutExposeAnnotation();
builder.serializeNulls();
gson = builder.create();

AndroidNetworking.setParserFactory(new GsonParserFactory(gson));
zigic88 commented 6 years ago

@zigic88 I have configured Gson parse like this in my project. It resolves the issue.

GsonBuilder builder;
Gson gson;

builder = new GsonBuilder();
builder.excludeFieldsWithModifiers(Modifier.FINAL, Modifier.TRANSIENT, Modifier.STATIC);
builder.excludeFieldsWithoutExposeAnnotation();
builder.serializeNulls();
gson = builder.create();

AndroidNetworking.setParserFactory(new GsonParserFactory(gson));

Cool, that's great. We can close this issue.