如何解析 RxJava 以仅接收我想要的数据?

How to parse RxJava to receive just the data that i want?

我只想要数字,但这是我在日志中收到的:

[Boletim(grade=4.5), Boletim(grade=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());
                    }
                });
    }
}

机型:

等级模型:

@SerializedName("boletim")
    @Expose
    private Boletim[] boletim;

Boletim.class

public class Boletim {

    @SerializedName("grade")
    @Expose
    private double grade;

改装服务正常,依赖注入正常。我从 rxJava 接收到 onSuccess 方法,我现在只需要接收没有这个的数字 "[Boletim(grade=".

您看到了对象的 toString,因为您在地图中得到了整个对象!

only the numbers without this "[Boletim(grade=".

你不能再映射并提取它吗?

.map(model -> {               // This map returns a Boletim[]
     return model.getBoletim();
 })
.map(boletim -> {             // This map returns a double[]
    Double grades = new Double[boletim.length];
    for (int i =0; i < grades.length ; i++) {
        grades[i] = boletim[i].getGrade() ;
    } 
    return grades;
}).subscribe(new Observer<Double[]>() {   // This subscribes to a double[]
    @Override
    public void onCompleted() {

    }

    @Override
    public void onError(Throwable e) {
        Log.i(TAG, "saporra vai me matar ainda");
    }

    @Override
    public void onNext(Double[] grades) {
        Log.i(TAG, Arrays.toString(grades));
    }
}

或者您可以将 for 循环放入 onNext

如果你不想要数组的 Observable,那么使用 flatMap