Convertisseur personnalisé pour Retrofit 2
Je dois gérer une dynamique de réponses JSON.
Avant, j'ai été en utilisant des classes et des annotations comme suit:
public class ChatResponse {
@SerializedName("status")
private int status;
@SerializedName("error")
private String error;
@SerializedName("response")
private Talk response;
public int getStatus() {
return status;
}
public String getError() {
return error;
}
public Talk getResponse() {
return response;
}
}
Lorsque l'état est 1 (succès) l' onResponse
est tiré et que je peux obtenir un ChatResponse objet. Mais, lorsque l'état est 0, la réponse est fausse dans la représentation JSON et il échoue (onFailure
est tiré).
Je veux créer mon convertisseur personnalisé, et cette question a un bon exemple, mais cet exemple est pour Modernisation 1.
Je créer une classe qui étend la classe Converter.Factory
mais je ne sais pas comment faire pour remplacer les méthodes de cette classe.
En fait, j'ai le suivant:
@Override
public Converter<ResponseBody, ?> fromResponseBody(Type type, Annotation[] annotations) {
return super.fromResponseBody(type, annotations);
}
@Override
public Converter<?, RequestBody> toRequestBody(Type type, Annotation[] annotations) {
return super.toRequestBody(type, annotations);
}
Comment je peux analyser la réponse JSON par mes propres à ce point?
Merci d'avance.
source d'informationauteur JCarlos | 2016-02-19
Vous devez vous connecter pour publier un commentaire.
Je cherchais un exemple simple sur la façon de mettre en œuvre un convertisseur personnalisé pour la Rénovation 2, et n'a rien trouvé de bon (il est un exemple mais, au moins pour moi, c'est trop compliqué pour ma purpouse).
Mais finalement, j'ai trouvé une solution. Cette solution est à utiliser
GSON deserializers
. Donc, nous n'avons pas besoin d'un convertisseur personnalisé, nous avons juste à personnaliser leGSON converter
.Ici est un grand tutoriel. Et voici mon code pour parser le JSON décrit dans ma question: