2017-09-22 16 views
-1

我有多个json api例如:api1,api2和api3 他们每个人的结构都与其他人不同, 我想从这三个API中获取数据,在一个回收站视图中将它们结合起来,我搜索了这些主题,但没有得到任何有用的教程,我已经使用改进的方式从只有一个API获取数据,我应该使用rxjava进行改造以完成我想要的操作。如何从多个json api获取数据

+0

你到底想要重新组合json?你可以选择个人数据:new_json = {name:api1.name,title:api2.title}或者合并它们:new_json = {json_api1,json_api2} – Anona112

回答

1

我猜你正在寻找zip方法。它基本上需要很多可观察的东西,等待他们的物品 - 所有物品 - 到达并合并它们。

所以你基本上可以在一个可观察对象中进行每个API调用,无论他们返回什么,你都可以得到它并做任何你想要的事情,以便让它们被包含在你的回收者视图中,最后当整个操作成功后,您将填充您的回收站视图。

Observable obs1 = Observable.fromCallable(// Callable 1); 
Observable obs2 = Observable.fromCallable(// Callable 2); 
Observable obs3 = Observable.fromCallable(// Callable 3); 

Observable.zip(obs1, obs2, obs3, (o1, o2, o3) -> // something) 
     .subscribeOn(Schedulers.io()) 
     .observeOn(AndroidSchedulers.mainThread()) 
     .subscribe(o -> { 
       // on success 
     });