我很好奇是否有一种扩展JSONArray的语法方法,以便我可以在for(:)循环中使用它,因为我可以使用List.
所以,而不是必须这样做:
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 Iterableiterable(final JSONArray array) { return new Iterable { Iterator iterator() { return new Iterator { 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
.