Why for each loop is not applicable for JSON array
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.