Retrofit2 ,Rxjava 中的过滤列表响应
Filter List response in Retrofit2 ,Rxjava
我想使用此 Observable
过滤 FeedDetails 上具有特定字符串的响应列表
Observable<List<FeedsDto>> listObservable = mApiService.getFeedDetails(feedsDto);
subscribe(listObservable, feedsDtoList -> view.getAllFees(feedsDtoList), throwable -> Log.e(tag, "getFeedDetails", throwable));
FeedsDto as below
@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;
试试这个:
mApiService.getFeedDetails(feedsDto)
.flatMap(Observable::fromIterable)
.filter(result -> result > 0) // Whatever you want to filter
.toList()
.toObservable()
.subscribe(...);
listObservable
.flatMapIterable(it -> it)
.filter(feedDto -> feedDto.feedDetails().equals("string_to_filter_by"))
.subscribe(...);
flatMapIterable
-> 从 FeedDto
个对象列表转换为单个 FeedDto
个对象
filter
-> 按一些 String/feedDetails 组合过滤它们
这确实意味着当您最后订阅时,您将不再有 List<FeedDto>
,而是只有 FeedDto
个对象的流。
我想使用此 Observable
Observable<List<FeedsDto>> listObservable = mApiService.getFeedDetails(feedsDto);
subscribe(listObservable, feedsDtoList -> view.getAllFees(feedsDtoList), throwable -> Log.e(tag, "getFeedDetails", throwable));
FeedsDto as below
@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;
试试这个:
mApiService.getFeedDetails(feedsDto)
.flatMap(Observable::fromIterable)
.filter(result -> result > 0) // Whatever you want to filter
.toList()
.toObservable()
.subscribe(...);
listObservable
.flatMapIterable(it -> it)
.filter(feedDto -> feedDto.feedDetails().equals("string_to_filter_by"))
.subscribe(...);
flatMapIterable
-> 从 FeedDto
个对象列表转换为单个 FeedDto
个对象
filter
-> 按一些 String/feedDetails 组合过滤它们
这确实意味着当您最后订阅时,您将不再有 List<FeedDto>
,而是只有 FeedDto
个对象的流。