私は数字だけをしたいが、これは私がログを受けてるものです:RxJavaを解析して、必要なデータだけを受け取る方法は?
[Boletim(グレード= 4.5)、Boletim(グレード= 9.5)]
応答:
public class GradeResponse {
@Inject
Retrofit retrofit;
@Inject
MainPresenter mainPresenter;
public void getGradeRx() {
MyApplication.getMainComponent().injectIntoGradeResponse(this);// informando ao dagger sobre o uso de um component e a necessidade de injetar dependência
Subscription getGrade = retrofit
.create(GradeService.class)
.getGrade()
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.map(model -> {
return model.getBoletim();
})
.subscribe(new Observer<Boletim[]>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
Log.i(TAG, "saporra vai me matar ainda");
}
@Override
public void onNext(Boletim[] grades) {
Log.i(TAG, Arrays.asList(grades).toString());
}
});
}
}
モデル:
GradeModel:
@SerializedName("boletim")
@Expose
private Boletim[] boletim;
Boletim.class
public class Boletim {
@SerializedName("grade")
@Expose
private double grade;
換装サービスは、依存性の注入が働いている、okです。私はちょうど今、「Boletim(グレード= [」このずに数字だけを受ける必要がある、rxJavaからするonSuccessメソッドを受けています。
flter演算子は、ここを参照してくださいflatMapを使用したくない場合は、onNext
にforループを入れることができます - https://github.com/ReactiveX/ RxJava/wiki/Filtering-Observables – StuStirling
'Arrays.asList(grades).toString()'は使用しないでください。 –
@LyubomyrShaydariv私はそれから何を使うべきですか? –