为什么每个循环都不适用于JSON数组

时间:2016-03-03 11:48:46

标签: android json foreach

当我尝试解析json数组时,工作室给了我一个编译错误,指出 foreach不适用于json数组。 虽然我知道如何获取所有对象并进行解析;我只是想知道为什么foreach不适用,即使json数组是一个数组

3 个答案:

答案 0 :(得分:8)

因为JSONArray类没有实现Iterable接口。

答案 1 :(得分:6)

对于每个循环都是这样的 -

例如for和Integer类型ArrayList<Integer> list;

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

但是JSONArray里面可以包含任何类型的值。

例如 -

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

这是一个有效的JSONArray,但它包含各种对象,即JSONObject,Integer,Boolean。因此,每次循环时我们都会获得不同类型的值。

因此,要为此数组应用每个循环,我们必须先将所有内容强制转换为Object类 -

for (Object o : myJsonArray)

这没有多大意义,需要大量无用的努力。

答案 2 :(得分:2)

因为JSONArray派生自Object而foreach期望集合可以迭代。