【问题标题】:Is it possible to iterate through JSONArray? [duplicate]是否可以遍历 JSONArray? [复制]
【发布时间】:2011-06-14 16:01:05
【问题描述】:

可能的重复:
JSON Array iteration in Android/Java
JSONArray with Java

是否可以使用迭代器遍历JSONArray 对象?

【问题讨论】:

标签: java


【解决方案1】:

不使用迭代器。

对于org.json.JSONArray,你可以这样做:

for (int i = 0; i < arr.length(); i++) {
  arr.getJSONObject(i);
}

对于javax.json.JsonArray,你可以这样做:

for (int i = 0; i < arr.size(); i++) {
  arr.getJsonObject(i);
}

【讨论】:

  • 不会在每次迭代时调用 arr.length() 吗?所以最好把它放到变量中并在循环中使用它。
  • 嗯,是的,但它每次都会是相同的值,但是是的,它不必要的变量应该更好。
  • 取决于编译器,另外我相信它只是一个 getter 从实例外部获取一个不可变的值,设置一个变量只会分配更多的内存 8-)。
  • JsonArray 上没有 .length() 方法,但有一个从 java.util.List 继承的 .size() 方法。 docs.oracle.com/javaee/7/api/javax/json/JsonArray.html
【解决方案2】:

您可以使用opt(int) 方法并使用经典的for 循环。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-11
    • 2011-10-05
    • 2012-11-10
    • 2018-05-27
    • 2015-03-10
    • 1970-01-01
    相关资源
    最近更新 更多