Je dois gérer des réponses JSON dynamiques.Convertisseur personnalisé pour Retrofit 2
Avant, j'utilisais 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) le onResponse
est tiré et je peux obtenir un objet ChatResponse. Mais, lorsque le statut est 0, la réponse est fausse dans la représentation JSON et elle échoue (onFailure
est renvoyé).
Je veux créer mon convertisseur de mesure et this question a un bon exemple, mais cet exemple est MODIFIABLE 1.
I have to créer une classe qui étend Converter.Factory
, mais je ne sais pas comment remplacer les méthodes de cette classe.
En fait, j'ai la prochaine:
@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 puis-je analyser la réponse JSON par moi-même à ce moment?
Merci d'avance.
Cela ajouterait une usine de conversion statique pour un même type de réponse. Que faire si je veux rendre l'analyse de différents objets de réponse optionnelle? J'ai peut-être varié des réponses pour divers apis avec des optionsl et des objets de réponses fixes. –