Gen*_* S. 9 java arrays android json
我很好奇是否有一种扩展JSONArray的语法方法,以便我可以在for(:)循环中使用它,因为我可以使用List.
所以,而不是必须这样做:
for(int i = 0; i< myJsonArray.length(); i++){
myJsonArray.getString(i);
}
Run Code Online (Sandbox Code Playgroud)
我想要做
for(String s : myJsonArray);
Run Code Online (Sandbox Code Playgroud)
我意识到我需要确保在上面的例子中,数组中的对象确实是一个String,但是假设JSONArrays只能处理一些不应该有问题的类型.
稍微调整所需的语法:
for(String s : iterable(myJsonArray))
Run Code Online (Sandbox Code Playgroud)
然后写这样的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
}
}
}
};
}
Run Code Online (Sandbox Code Playgroud)
我意识到我需要确保在上面的例子中,数组中的对象确实是一个String
好吧不是真的好像它不是一个String, 反正它会被强制转移String.