一个顶点JsonObject
包含一个顶点JsonArray
,类似于:
{
"myArray":[
{"id":"1", name:"Yael" },
{"id":"2", name:"Haddasa"}
]
}
使用数组创建RxJava Observable
的正确方法是什么,以便可观察对象将分别处理数组中的每个元素。尝试了以下方法:
JsonArray vertxJsonArray = h.getJsonArray("myArray");
Observable<Object> observable = Observable.fromArray(vertxJsonArray);
observable.flatMapSingle(s -> {
...
但是使用上面的方法,数组没有被拆分成单独的元素。 谢谢
答案 0 :(得分:1)
由于JsonArray
实现了Iterable
,因此您可以使用Observable.fromIterable(),如下所示:
@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());
}