API返回的RxJava2更改Flowable对象的类型

时间:2018-09-11 13:30:12

标签: android rx-java2 rx-android

DarkSkyAPI调用返回Forecast对象,该对象包含WeeklyData对象,而该对象又包含Array<DailyData>

我的存储库类需要Array<DailyData>来缓存数据并将其传播到Presenter。

目前,我正在这样调用API: Flowable<Forecast> response = service.getRxWeatherResponse(params...);

如何解开此Flowable<Forecast>以提取Flowable<Array<DailyData>>并返回到存储库类?

谢谢。

1 个答案:

答案 0 :(得分:1)

克里斯,谢谢!我已经按照您的建议使用了地图运算符。最终代码返回Observable,如下所示:

return service.getRxWeatherResponse(API cal params...)
        .map(new Function<Forecast, List<DailyData>>() {
                 @Override
                 public List<DailyData> apply(Forecast forecast) throws Exception {
                     return forecast.getWeeklyData().getDailyData();
                 }
             });

或使用lambda简化:

return service.getRxWeatherResponse(API cal params...)
        .map(forecast -> forecast.getWeeklyData().getDailyDataArray());