2017-09-22 3 views
-1

나는 둘 이상의 json api ex : api1, api2 및 api3을 가지고 있습니다. 각각 하나는 다른 구조와 다릅니다. 이 세 API에서 데이터를 가져오고 싶습니다. 하나의 리사이클 뷰에서 그들을 결합, 나는 이러한 주제에 대한 검색하지만 유용한 튜토리얼을 얻을 수 없다 나는 단지 하나의 API에서 데이터를 가져 오기 위해 retrofit을 사용하고 있는데, 내가 원하는 것을 할 수 있도록 rxjava 가지를 추가로 사용해야한다.둘 이상의 json API에서 데이터를 가져 오는 방법

+0

json을 정확히 재결합 하시겠습니까? new_json = {name : api1.name, title : api2.title} 또는 new_json = {json_api1, json_api2}를 조합하면됩니다. – Anona112

답변

1

나는 zip 방법을 찾고 있다고 생각합니다. 기본적으로 많은 관찰 자료를 필요로하며, 모든 항목을 도착한 다음 병합합니다.

기본적으로 observable에서 각 API 호출을 수행 할 수 있습니다. 반환하는 항목은 무엇이든 가져올 수 있으며, 리사이클 러뷰에 포함되도록 준비하기 위해 원하는 모든 작업을 수행하고 마지막으로 전체 작업 당신은 당신의 recyclerview를 채울거야 성공합니다.

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 
     }); 
관련 문제