DJphy
DJphy

Reputation: 1302

Why for each loop is not applicable for JSON array

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 I know how to get all objects and parse; I just wanted to know why foreach is not applicable even though the json array is an array

Upvotes: 5

Views: 3763

Answers (3)

Jyotman Singh
Jyotman Singh

Reputation: 11340

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.

Upvotes: 9

Sel&#231;uk Cihan
Sel&#231;uk Cihan

Reputation: 2034

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

Upvotes: 4

Geralt_Encore
Geralt_Encore

Reputation: 3771

Because JSONArrayclass doesn't implement Iterable interface.

Upvotes: 9

Related Questions