akshay_shahane
akshay_shahane

Reputation: 4643

How to iterate through JSONArray Using RXJava 2?

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

Answers (1)

taygetos
taygetos

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

Related Questions