2016-05-19 5 views
-1

Wie ich für das Get-Objekt "Dienste" tun?Retrofit: Erwartete BEGIN_ARRAY aber war BEGIN_OBJECT

{ 
"success": "true", 
"code": "200", 
"message": "The operation was successful", 
"data": { 
    "hairdressers": [ 
     { 
      "name": "Jason Grant", 
      "image_profile": "http:\/\/www.kbapi.co\/images\/header\/3.png", 
      "open": "09:00:00", 
      "close": "15:00:00", 
      "id": "2", 
      "id_saloon": "4", 
      "services": [ 
       { 
        "name": "Corte", 
        "price": "8000", 
        "image": "http:\/\/www.kbapi.co\/images\/header\/1.png", 
        "time": "01:00:00", 
        "type": "W", 
        "saloon_id": "4", 
        "service_id": "3" 
       }, 
       { 
        "name": "Corte", 
        "price": "8000", 
        "image": "http:\/\/www.kbapi.co\/images\/header\/1.png", 
        "time": "01:00:00", 
        "type": "C", 
        "saloon_id": "4", 
        "service_id": "4" 
       }, 
       { 
        "name": "Corte", 
        "price": "9000", 
        "image": "http:\/\/www.kbapi.co\/images\/header\/1.png", 
        "time": "01:00:00", 
        "type": "O", 
        "saloon_id": "4", 
        "service_id": "5" 
       } 
      ] 
     }, 
     { 
      "name": "Herbert Davis", 
      "image_profile": "http:\/\/www.kbapi.co\/images\/header\/4.png", 
      "open": "10:00:00", 
      "close": "16:00:00", 
      "id": "3", 
      "id_saloon": "4", 
      "services": [] 
     } 
    ] 
} 
} 

Antwort

0

Der Fehler tritt auf, weil Sie Retrofit doch sagen, dass Sie eine JSONArray erwarten sind, sondern du bist ein JSON object bekommen. Ich habe mir kurz das von Ihnen verwendete Ergebnis angesehen und es sieht so aus, als ob es eine JSON object zurückgibt und das zurückgegebene Objekt dann die Liste enthält, auf die Sie zugreifen möchten. Ich kann Ihnen weiter helfen, wenn Sie Ihren GET Anruf bekanntgeben.

+0

wickeln Was passiert, ist, dass ich nicht auf den Dienst zugreifen können [], aber wenn Friseure. Ich könnte in diesem Fall tun? –

+0

Das hängt davon ab, wie der Server aufgebaut ist. Der Server kann einen Statuscode senden, bei dem der Dienst inaktiv ist. In diesem Fall wird die Antwort möglicherweise korrekt deserialisiert, und Sie müssen in onResponse() nach dem Statuscode suchen. Die andere Möglichkeit besteht darin, dass die Antwort vollständig leer ist, die Deserialisierung fehlschlägt und onFailure() aufgerufen wird und Sie diesen Aufruf ordnungsgemäß behandeln müssen. –

+0

dies nicht –

0

Sie sollten Ihre Liste der Objekte mit einem weiteren Java-Klasse

public class Response { 
    private boolean success; 
    private int code; 
    private String message; 
    private List<Data> data; 
} 

public class Data { 
    private List<Hairdresser> hairdressers = new ArrayList<Hairdresser>(); 
} 

zu erzeugen, diese Objekte automatisch können Sie verwenden Service like this one

+0

Was passiert ist, dass ich nicht auf den Service [] zugreifen kann, aber wenn Friseure. Ich könnte in diesem Fall tun? –

Verwandte Themen