A vertx JsonObject
contains a vertx JsonArray
, similar to:
{
"myArray":[
{"id":"1", name:"Yael" },
{"id":"2", name:"Haddasa"}
]
}
What is the correct way to create an RxJava Observable
using the array, so that the observable will handle each element in the array separately. Have tried the following:
JsonArray vertxJsonArray = h.getJsonArray("myArray");
Observable<Object> observable = Observable.fromArray(vertxJsonArray);
observable.flatMapSingle(s -> {
...
But using the above, the array is not split up into separate elements. Thanks
since JsonArray
implements Iterable
, you can use Observable.fromIterable(), like so:
@Test
public void from_iterable_test() {
final TestObserver<Object> testObserver = new TestObserver<>();
final String json = "{\"myArray\": [{\"id\": \"1\", \"name\": \"Yael\"}, {\"id\": \"2\", \"name\": \"Haddasa\"}] }";
final JsonObject jsonObject = new JsonObject(json);
final JsonArray jsonArray = jsonObject.getJsonArray("myArray");
Observable.fromIterable(jsonArray).subscribe(testObserver);
assertEquals(jsonArray.size(), testObserver.valueCount());
}