NumberFormatException - $.predictions[0].probability
meetarun-m opened this issue · 1 comments
Hi,
I am trying to call the Image Caption Generator from Android app via RetroFit2.
When i try to test the API with the default image available in the Emulator I am getting the following exception.
My Guess is that this issue is from the API, Please correct me if I am wrong.
com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: Expected an int but was 9.84082025545015e-05 at line 1 column 140 path $.predictions[0].probability
com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:245)
com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:235)
com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:129)
com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:220)
com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:41)
com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:82)
com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:61)
com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:129)
com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:220)
retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:37)
retrofit2.converter.gson.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:25)
retrofit2.ServiceMethod.toResponse(ServiceMethod.java:119)
retrofit2.OkHttpCall.parseResponse(OkHttpCall.java:218)
retrofit2.OkHttpCall$1.onResponse(OkHttpCall.java:112)
okhttp3.RealCall$AsyncCall.execute(RealCall.java:141)
okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
java.lang.Thread.run(Thread.java:764)
My Bad.
I had this probability variable as Int instead of Float.
@expose
private float probability;
Now able to call the API and receive response without issues.
Hope this answer helps someone. Thanks