2017-09-22 2 views
-1

Ich habe mehr als ein JSON API: api1, api2 und api3 Jede von ihnen hat andere Struktur von den anderen, Ich möchte Daten von diesen drei API und Kombiniere sie in einer Recycler-Ansicht, ich suchte nach diesen Themen, konnte aber kein nützliches Tutorial bekommen Ich benutze bereits Retrofit um Daten von nur einer API zu holen, sollte ich rxjava mit Retrofit benutzen um das zu tun was ich will Und wie.Wie bekomme ich Daten von mehr als einem JSON api

+0

Wie genau wollen Sie den JSON rekombinieren? Sie könnten einzelne Daten auswählen: new_json = {name: api1.name, title: api2.title} oder einfach kombinieren: new_json = {json_api1, json_api2} – Anona112

Antwort

1

Ich schätze, Sie suchen nach der zip Methode. Es braucht im Wesentlichen viele Observables, wartet darauf, dass ihre Gegenstände - alle - ankommen und sie dann zusammenführen.

So können Sie jeden API-Aufruf grundsätzlich in einer Observablen durchführen, was auch immer sie zurückgeben, Sie werden alles bekommen und tun, was Sie wollen, um sie auf Ihre Recyclerview und schließlich auf den gesamten Vorgang vorzubereiten Es gelingt Ihnen, Ihre Recyclerview zu füllen.

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 
     }); 
Verwandte Themen