【问题标题】:Why for each loop is not applicable for JSON array为什么对于每个循环都不适用于 JSON 数组
【发布时间】:2016-06-16 17:35:07
【问题描述】:

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

【问题讨论】:

  • 请出示一些代码。
  • 添加部分代码

标签: android json foreach


【解决方案1】:

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

例如对于和整数类型ArrayList<Integer> list;

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

但 JSONArray 可以在其中包含任何类型的值。

例如-

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

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

所以要在这个数组上应用 for each 循环,我们必须首先将所有内容都转换为 Object 类 -

for (Object o : myJsonArray)

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

【讨论】:

    【解决方案2】:

    因为JSONArrayclass 没有实现Iterable 接口。

    【讨论】:

      【解决方案3】:

      因为 JSONArray 派生自 Object 并且 foreach 期望集合是可迭代的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-20
        • 1970-01-01
        • 2014-01-30
        • 2020-10-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多