Reputation: 4643
to iterate through array list one can use following code
List<LatLng> latLngs = new ArrayList<>();
latLngs.add(new LatLng(5,5));
Observable.just(latLngs)
.concatMap(array -> Observable.fromIterable(array))
.subscribe(v-> Log.d(TAG, "subscribeToTopic: "+v.latitude));
but how to iterate through JSONarray like this using Rxjava?
[{
"vehicleId": "5c11e863a361762fdbe99fae",
"latitude": "19.952829",
"latitudeDir": "N",
"longitude": "73.735054",
"longitudeDir": "E",
"speed": "0.0",
"ignition": "0",
"batteryStatus": "1"
}, {
"vehicleId": "5c11e863a361762fdbe99fae",
"latitude": "19.952829",
"latitudeDir": "N",
"longitude": "73.735054",
"longitudeDir": "E",
"speed": "0.0",
"ignition": "0",
"batteryStatus": "1"
}, {
"vehicleId": "5c11e863a361762fdbe99fae",
"latitude": "19.952829",
"latitudeDir": "N",
"longitude": "73.735054",
"longitudeDir": "E",
"speed": "0.0",
"ignition": "0",
"batteryStatus": "1"
}, {
"vehicleId": "5c11e863a361762fdbe99fae",
"latitude": "19.952829",
"latitudeDir": "N",
"longitude": "73.735054",
"longitudeDir": "E",
"speed": "0.0",
"ignition": "0",
"batteryStatus": "1"
}]
Upvotes: 0
Views: 568
Reputation: 3040
Since JSONArray implements the List interface (assuming that you using simplejson here), you can pretty much do the same:
JSONArray jsonArray = new JSONArray();
Observable.fromIterable(jsonArray)
.subscribe(e -> {
System.out.println((JSONObject) e);
});
EDIT: based on your comments i think you're not using simplejson but this org.json.JSONArray which does not implement the List interface. In this case you can iterate like this:
JSONArray jsonArray = new JSONArray();
Observable.range(0,jsonArray.length())
.map(jsonArray::get)
.subscribe(e -> {
System.out.println((JSONObject) e);
});
Upvotes: 2