Retrofit2,Rxjava中的筛选器列表响应

时间:2017-12-20 12:07:08

标签: android retrofit2 rx-java2

我想使用此winscp.com /log=ftp.log /command ^ "open ftp://USERNAME:PASSWORD@ftp.example.com/" ^ "mput ""%2\*"" ""%1""" ^ "exit"

在FeedDetails上使用特定字符串过滤响应列表
Observable
  

FeedsDto如下

Observable<List<FeedsDto>> listObservable = mApiService.getFeedDetails(feedsDto);
subscribe(listObservable, feedsDtoList -> view.getAllFees(feedsDtoList), throwable -> Log.e(tag, "getFeedDetails", throwable));

2 个答案:

答案 0 :(得分:3)

试试这个:

 mApiService.getFeedDetails(feedsDto)
    .flatMap(Observable::fromIterable)
    .filter(result -> result > 0) // Whatever you want to filter
    .toList()
    .toObservable()
    .subscribe(...);

答案 1 :(得分:3)

listObservable
    .flatMapIterable(it -> it)
    .filter(feedDto -> feedDto.feedDetails().equals("string_to_filter_by"))
    .subscribe(...);

flatMapIterable - &gt;从FeedDto个对象列表转换为单个FeedDto个对象 filter - &gt;通过一些String / feedDetails组合过滤它们

这意味着您在最后订阅时不再拥有List<FeedDto>,而只是FeedDto个对象的流。