When I was trying to parse a json array, the studio gave me a compilation error stating foreach is not applicable for json array. Although
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
class doesn't implement Iterable
interface.
Because JSONArray
derives from Object
and foreach expects the collection to be iterable.