Ich möchte JSON-Ausgabe von Rest Anruf basierend auf dem Status verarbeiten. Was wird der erforderliche Ansatz sein?Behandeln Sie den Status von JSON durch Retrofit-Aufruf
Hier ist meine Methode von RetrofitApi Klasse
@POST("KeepHoldTisConfirmation")
Observable<ResultOutput> putHoldTis(@Body ResultOutput body);
Hier meine MyObject-Klasse Struktur ist
public int filterId;
public String type;
Hier meine ResultOutput Klasse Struktur
public int status;
public List<MyObject> data;
Wenn Erfolg meines JSON Ausgang : -
{"status":1,"data":[{"filterId":1,"type":"flower"},{"filterId":2,"type":"sand"}]}
Wenn Fehler meine JSON Ausgabe lautet: -
{"status":2,"data":"Invalid key"}
Hier ist mein beobachtbare Code: -
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();
}
});
hier, was soll ich in OnNext schreiben()?
was ist das gewünschte Verhalten ? was ist falsch mit einfach wenn am onNext()? Möchten Sie Ausnahmen mit Fehlerstatus auslösen? – yosriz
Ich möchte ResultOutput als die gewünschte json-Ausgabe, es ist nur möglich, wenn Status 1 ist, wenn Status 2 ist, schlägt es fehl – user2582324