I'm facing a problem with Gson
. I'm fetching Json
data formatted. Here is the syntax :
I/Reponse-Json: [{"consultation_id":281,"plageconsult_id":76,"patient_id":116,"heure":"11:04:00","duree":1,"motif":null,"secteur1":0,"secteur2":0,"rques":null,"chrono":"32","annule":"0","patient_date_reglement":null,"examen":null,"traitement":null,"histoire_maladie":null,"conclusion":null,"premiere":"0","derniere":"0","tarif":null,"patient_mode_reglement":null,"arrivee":"2017-11-22 11:04:00","codes_ccam":null,"banque_id":null,"categorie_id":null,"adresse":"0","valide":"0","total_amc":null,"total_amo":null,"total_assure":null,"du_patient":0,"sejour_id":252,"du_tiers":0,"tiers_mode_reglement":null,"tiers_date_reglement":null,"date_at":null,"concerne_ALD":"0","facture":"0","adresse_par_prat_id":null,"si_desistement":"0","fin_at":null,"pec_at":null,"reprise_at":null,"type":"classique","grossesse_id":null,"at_sans_arret":"0","arret_maladie":"0","factureconsult_id":null,"brancardage":null,"sianesthesique":0},{"consultation_id":282,"plageconsult_id":77,"patient_id":116,"heure":"16:31:00","duree":1,"motif":null,"secteur1":0,"secteur2":0,"rques":"RAS","chrono":"64","annule":"0","patient_date_reglement":null,"examen":null,"traitement":"HUILE DE PARAFINE FL DE 1 LITRE\n","histoire_maladie":null,"conclusion":null,"premiere":"0","derniere":"0","tarif":null,"patient_mode_reglement":null,"arrivee":"2017-11-22 16:31:00","codes_ccam":null,"banque_id":null,"categorie_id":null,"adresse":"0","valide":"0","total_amc":null,"total_amo":null,"total_assure":null,"du_patient":0,"sejour_id":252,"du_tiers":0,"tiers_mode_reglement":null,"tiers_date_reglement":null,"date_at":null,"concerne_ALD":"0","facture":"0","adresse_par_prat_id":null,"si_desistement":"0","fin_at":null,"pec_at":null,"reprise_at":null,"type":"classique","grossesse_id":null,"at_sans_arret":"0","arret_maladie":"0","factureconsult_id":null,"brancardage":null,"sianesthesique":0}]
And here is the code used to deserialized
Log.i("Reponse-Json", response);
List<Consultation> consultations = Arrays.asList(gson.fromJson(response, Consultation[].class));
Log.i("ConsultActivity", consultations.size()+" consultations loaded");
for (Consultation c : consultations) {
Log.i("ConsultActivity", ""+c.getConsultationId());
}
And here is the error:
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 72
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:176)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:93)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:172)
at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:40)
at com.google.gson.internal.bind.ArrayTypeAdapter.read(ArrayTypeAdapter.java:72)
at com.google.gson.Gson.fromJson(Gson.java:803)
at com.google.gson.Gson.fromJson(Gson.java:768)
at com.google.gson.Gson.fromJson(Gson.java:717)
at com.google.gson.Gson.fromJson(Gson.java:689)
at org.cfrtmbk.www.elaafi.ConsultActivity$1.onResponse(ConsultActivity.java:69)
at org.cfrtmbk.www.elaafi.ConsultActivity$1.onResponse(ConsultActivity.java:65)
at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:60)
at com.android.volley.toolbox.StringRequest.deliverResponse(StringRequest.java:30)
at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:99)
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:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 72
at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:374)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory
I have try to use a solution similar to :
Type collectionType = new TypeToken<Collection<channelSearchEnum>>(){}.getType();
Collection<channelSearchEnum> enums = gson.fromJson(yourJson, collectionType);
but having the same issue Please help me