我很好奇是否存在扩展JSONArray的语法方法,这样我就可以像在List中那样在for(:)循环中使用它了。
因此,无需执行以下操作:
for(int i = 0; i< myJsonArray.length(); i++){
myJsonArray.getString(i);
}
我想要做
for(String s : myJsonArray);
我意识到我需要确保在上面的示例中,数组中的对象确实是一个String,但是考虑到JSONArrays只能处理一些应该没问题的类型。
稍微调整一下所需的语法:
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
}
}
}
};
}
我意识到我需要确保在上面的示例中,数组中的对象确实是一个String
好吧,不是真的不是String
,而是会被强制执行String
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句