我想使用此Observable
在FeedDetails上使用特定字符串过滤响应列表
Observable<List<FeedsDto>> listObservable = mApiService.getFeedDetails(feedsDto);
subscribe(listObservable, feedsDtoList -> view.getAllFees(feedsDtoList), throwable -> Log.e(tag, "getFeedDetails", throwable));
FeedsDto如下
@SerializedName("EntryId")
private int mEntryId;
@SerializedName("EntryTypeId")
private int mEntryTypeId;
@SerializedName("FeedDetails")
private String mFeedDetails;
@SerializedName("FullName")
private String mFullName;
@SerializedName("Id")
private int mId;
listObservable
.flatMapIterable(it -> it)
.filter(feedDto -> feedDto.feedDetails().equals("string_to_filter_by"))
.subscribe(...);
flatMapIterable
- >从FeedDto
对象列表转换为单独的FeedDto
对象filter
- >通过一些String / feedDetails组合过滤它们
这意味着当你最后订阅时,你将不再拥有List<FeedDto>
,而只是一个FeedDto
对象流。
试试这个:
mApiService.getFeedDetails(feedsDto)
.flatMap(Observable::fromIterable)
.filter(result -> result > 0) // Whatever you want to filter
.toList()
.toObservable()
.subscribe(...);