2016-02-10 3 views
2

Comment puis-je analyser cette réponse sans avoir à créer une classe de réponse distincte pour chaque entité.Retrofit analyse la réponse JSON de l'API lorsque le modèle est dans l'objet "data"

{ 
    "data": { 
    "id": 100, 
    "first_name": "Michael", 
    "last_name": "Blankenship" 
    } 
} 

Je voudrais avoir une classe générique qui peut faire référence à l'objet de données, puis spécifiez simplement quel type de classe qui devrait être utilisé pour analyser la réponse

Quelque chose comme ceci:

@Get 
Call<User> getUser(); 

@Get 
Call<Status> getStatus(); 

Sans avoir à avoir des classes de réponses multiples pour chaque type

public class UserResponse { 
    User data; 
} 

public class User { 
    String first_name; 
    String last_name; 
} 

public class StatusResponse { 
    Status data; 
} 
+0

En fait, c'est le problème avec la structure JSON. J'ai également fait face au problème semblable et le correctif dur et le correctif juste serait de demander à l'équipe de serveur de supprimer la clé de données. –

Répondre

0

Solution de contournement pour cela créer une classe générique quelque chose comme ceci

public class BaseResponseWrapper <T> { 

    @SerializedName("data") 
    private T data; 

    public BaseResponseWrapper(){ 
     super(); 
    } 

    public T getData() { 
     return data; 
    } 
}