2016-05-08 1 views
0

Hallo ich benutze Retrofit, um ein Java-Objekt zurück zu bringen, Ich möchte ein Textfeld basierend auf einem der Felder in der Antwort ändern, aber ich kann nicht finden überall im Web, wie das zu tun,wie auf JSON-Objekt von HTTP Callback auf Retrofit 2.0 zugreifen

diese Schnittstelle mein Retrofit ist:

public interface retrofitApi { 

    String baseUrl = "http://192.168.137.1:3003/"; 

    @GET("api/radBox/getDegrees") 
    Call<ResponseBody> getCallData(); 

    //Call<degreesModel> getCallData(); 


    class Factory { 
     private static retrofitApi service; 

     public static retrofitApi getInstance() { 
      if (service == null) { 
       Retrofit retrofit = new Retrofit.Builder() 
         .baseUrl(baseUrl) 
         .addConverterFactory(GsonConverterFactory.create()) 
         .build(); 

       service = retrofit.create(retrofitApi.class); 
       return service; 
      } else { 
       return service; 
      } 

     } 
    } 


} 

und hier ist mein repsonse:

retrofitApi.Factory.getInstance().getCallData().enqueue(new Callback<ResponseBody>() { 
      @Override 
      public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) { 


//HERE I WANT TO DO RESPONSE.BODY.SOMEHING ? 
//HERE I WANT TO DO RESPONSE.BODY.SOMEHING ? 


@Override 
      public void onFailure(Call<ResponseBody> call, Throwable t) { 
       Log.d("myLogs", "failed to Retrive Data"); 
       Log.d("myLogs", "becouse: "+t); 
       largeTextVar.setText("failed: " + t); 
      } 
     }); 


    } 

mein j Sohn sieht wie folgt aus:

{ 
    "data": { 
    "sector": [ 
     [ 
     { 
      "scanned": false, 
      "sectorOne": "", 
      "sectorTwo": "", 
      "sectorThree": "" 
     }, 
     { 
      "scanned": false, 
      "sectorOne": "", 
      "sectorTwo": "", 
      "sectorThree": "" 
     } 
     ] 
    ] 
    }, 
    "curserLocation": { 
    "elevation": 30, 
    "horizontal": 105 
    } 
} 

Wie kann ich von der Antwort auf eines der Felder in meinem JSON zugreifen?

THNX ALLOT !!

+0

Lesen Sie hierzu: https://guides.codepath.com/android/Consuming-APIs-with-Retrofit –

+0

Gibt es einen Grund, warum Sie lieber mit dem JSON als mit einem Bean-Objekt arbeiten möchten? – nasch

+0

hallo, nein, nicht ein bestimmter Grund, gerade was ich über den Versuch kam, es zu tun .. –

Antwort

0

Sie sollten einige Klassen definieren, um auf Ihre Felder zugreifen zu können. In Ihrem Fall konvertieren Sie Ihre Antwort in die richtigen Klassen und greifen Sie mit Getter-Methoden darauf zu. (Sie können den automatischen Konverter here finden, aber ich empfehle, es selbst zu tun)

Auch this Website geben Ihnen einige Ansicht, wie Ihre Klassen sein sollten.

Verwandte Themen