当前位置: 首页 > 知识库问答 >
问题:

是否有一种方法可以重载JSONArray以使其在循环中表现得像一个常规列表?

长孙哲
2023-03-14
for(int i = 0; i< myJsonArray.length(); i++){
    myJsonArray.getString(i);
}
for(String s : myJsonArray);

我意识到我需要确保在上面的示例中数组中的对象确实是一个字符串,但是考虑到JSONArrays只能处理几种类型,这应该不会有问题。

共有1个答案

辛才俊
2023-03-14

对所需语法稍作调整:

for(String s : iterable(myJsonArray))

然后编写iterable方法,如下所示:

public static Iterable<String> iterable(final JSONArray array) {
   return new Iterable<String> {
       Iterator<String> iterator() {
          return new Iterator<String> {
             int i = 0;

             boolean hasNext(){
                return i < array.length();
             }

             String next(){
                return array.getString(i++);
             }

             void remove(){
                throw new RuntimeException(); //implement if you need it
             }
          }
       }
   };
}

我意识到我需要确保在上面的例子中数组中的对象确实是一个字符串

 类似资料: