2016-02-18 5 views
0

Je veux envoyer une réponse post avec aucun paramètre sur mon URL. Cependant la réponse que je reçois est ceerreur Retrofit 2 dans JSON analyse

[Lcom.example.c4u015.retrotestapp.Questions;@97ddd71 

mais la réponse réelle est ce

{ 
"MemberDays": "[{"Dt":"02/19/2016","AM":"0","AMS":"1","NS":"0","NSS":"0","PM":"1","PMS":"0","SB":"0","DS":"0","Note":""},{"Dt":"02/25/2016","AM":"0","AMS":"0","NS":"0","NSS":"0","PM":"0","PMS":"0","SB":"0","DS":"0","Note":""}]" 
"Message": "" 
"Status": "0" 
} 

Ceci est mon code.

Retrofit retrofit = new Retrofit.Builder() 
       .baseUrl("http://192.168.1.99:82/MembersWS.svc/") 
       .addConverterFactory(GsonConverterFactory.create()) 
       .build(); 
     gitAPI stackOverflowAPI = retrofit.create(gitAPI.class); 

     Call<Questions[]> call = stackOverflowAPI.loadQuestions(); 

     call.enqueue(new Callback<Questions[]>() { 
      @Override 
      public void onResponse(Response<Questions[]> response, Retrofit retrofit) { 
       if (response.isSuccess()) { 
        Questions[] user = response.body(); 
        Log.e("parsed"," on response"); 
        Log.e("response", response.body().toString()+" "+response.raw().toString()); 
       } else { 
        int statusCode = response.code(); 
Log.e("status",""+statusCode); 
        // handle request errors yourself 
        ResponseBody errorBody = response.errorBody(); 
       } 
       pd.dismiss(); 


      } 

      @Override 
      public void onFailure(Throwable t) { 
       pd.dismiss(); 
       Log.e("error", t.getLocalizedMessage()); 
       Toast.makeText(MainActivity.this, t.getLocalizedMessage(), Toast.LENGTH_SHORT).show(); 
      } 
     }); 

Et c'est l'interface que je l'ai utilisé

public interface gitAPI { 
    @POST("GetMemberAvailability/MBR0011581") 
    Call<Questions[]> loadQuestions(); 
} 
+0

'response.body.toString(). c4u015.retrotestapp.Questions; @ 97ddd71'. Quel est le problème? ou quel est l'effet désiré? – Breavyn

+0

comment obtenir la réponse brute json je reçois? –

+0

vous imprimez l'objet c'est ce que vous voyez, quelle sera la sortie de 'Log.i (" response ", utilisateur [0] .getXXX());' où XXX est une méthode getter pour la classe 'Questions' – Yazan

Répondre

1

vous imprimez la sortie du toString() qui est id objet dans ce cas, et sa valeur est waht que vous voyez [Lcom.example.c4u015.retrotestapp.Questions;@97ddd71

votre réponse est un tableau de type Question, donc pour imprimer la sortie, vous devrez parcourir les éléments du tableau et appeler des getters, ex:

user[0].getXXX(); où XXX est une méthode de lecture pour les questions de classe

ou vous pouvez utiliser un `doit être quelque chose comme` [Lcom.example processus for loop ou autre que vous souhaitez