Why for each loop is not applicable for JSON array Why for each loop is not applicable for JSON array json json

Why for each loop is not applicable for JSON array


Because JSONArrayclass doesn't implement Iterable interface.


For each loop works like this -

For example for and Integer type ArrayList<Integer> list;

for (int x : list)    // process x here

But a JSONArray can have any type of value inside it.

For example -

[{"name" : John}, {"name" : Joe}, 1, false]

This is a valid JSONArray but it contains all kinds of objects namely - JSONObject, Integer, Boolean. So we would get a different type of value each time in for each loop.

So to apply a for each loop on this array we'll have to cast everything to Object class first -

for (Object o : myJsonArray)

Which doesn't makes much sense and would require a lot of useless effort.


Because JSONArray derives from Object and foreach expects the collection to be iterable.