rxAndroid操作数据以获取列表
我需要在RecyclerView中显示游戏列表。 问题是数据结构。我有团队(团队名称应该是列表中的一个标题,其中只包含一张照片),在它下面是每个团队数组中“游戏”数组中的更多游戏对象。 我使用可观察的改装调用调用api:rxAndroid操作数据以获取列表,android,rx-java,reactive-programming,rx-android,Android,Rx Java,Reactive Programming,Rx Android,我需要在RecyclerView中显示游戏列表。 问题是数据结构。我有团队(团队名称应该是列表中的一个标题,其中只包含一张照片),在它下面是每个团队数组中“游戏”数组中的更多游戏对象。 我使用可观察的改装调用调用api: RestManager.get() .api() .getLastGames(params...) .compose(Transformer.applyIO)) .subscribe(listener::LastGa
RestManager.get()
.api()
.getLastGames(params...)
.compose(Transformer.applyIO))
.subscribe(listener::LastGameDataReady));
我从服务器获得的JSON如下所示:
如何编辑响应以将列表
获取到subscribe接口,而不是总响应对象
如何编辑响应以获取订阅列表
接口而不是总响应对象
您可以使用操作符来实现这一点,该任务是转换可观察的
RestManager.get()
.api()
.getLastGames(params...)
.compose(Transformer.applyIO))
.map(responseObj -> // extract and return your list)
.subscribe(listener::LastGameDataReady));
如果
LastGameDataReady
的唯一参数是map操作符中返回的相同类型的列表
,您仍然可以使用::
操作符如果您想从这个JSON响应中获取列表
,我建议您使用concatMap
提取游戏列表,然后使用toList
将它们合并回来
RestManager.get()
.api()
.getLastGames(params...)
.concatMap(Observable::from)
.concatMap(team -> Observable.from(team.getGames()))
.toList()
.compose(Transformer.applyIO))
.subscribe(listener::LastGameDataReady));