Je souhaite traiter la sortie JSON à partir de l'appel de repos en fonction de l'état. Alors, quelle sera l'approche requise?Gérer l'état de JSON par appel Retrofit
Voici ma méthode de classe RetrofitApi
@POST("KeepHoldTisConfirmation")
Observable<ResultOutput> putHoldTis(@Body ResultOutput body);
Voici ma classe MyObject Structure
public int filterId;
public String type;
Voici ma classe ResultOutput Structure
public int status;
public List<MyObject> data;
Si le succès de mon JSON est : -
{"status":1,"data":[{"filterId":1,"type":"flower"},{"filterId":2,"type":"sand"}]}
Si l'erreur ma sortie JSON est: -
{"status":2,"data":"Invalid key"}
Voici mon code Observable: -
Observable.fromIterable(entities)
.filter(tisEntity -> "1".equals(tisEntity.isTisHold))
.concatMapEager(tisEntity -> {
Log.d(TAG,"insert = "+tisEntity.hitachiCode);
return hitachiRetrofitApi.putHoldTis(new TisHoldEntity(tisEntity.projectId, tisEntity.holdReason, "76800",
tisEntity.holdComment,tisEntity.hitachiCode, 1));})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeWith(new DisposableObserver<ResultOutput>() {
@Override
public void onNext(ResultOutput responseBody) {
// handle here status and accordingly process output
}
@Override
public void onError(Throwable e) {
e.printStackTrace();
cancleProgressDialog();
}
@Override
public void onComplete() {
Log.d(TAG, "on complete for entity");
updateTisDetails();
}
});
Ici, que dois-je écrire à l'intérieur OnNext()?
quel est le comportement souhaité ? quel est le problème avec simple si onNext()? voulez-vous lever des exceptions avec le statut d'erreur? – yosriz
Je veux que ResultOutput soit la sortie json désirée, cela n'est possible que si le statut est 1 si le statut est 2 il échoue – user2582324