我有一个JSONArray
的实例,我很好奇我是否可以使用for-each构造来按顺序处理每个元素。所以我试过了:
for( Object jsonObj: jsonArray ) {
System.out.println("JSONArray element: '" + ((JSONObject)jsonObj).toString() + "'");
}
令我惊讶的是它有效。我以为我需要使用实现Iterable的类。
所以,如果你能回答我的初步问题(在JSONArray
上使用for-each),那就太好了。也:
全部谢谢!
答案 0 :(得分:0)
The for-each loop语法。它的目的是从迭代器等明显的东西中清除你的代码,同时也减少了一些错误的可能性。
这种循环语句仅适用于Iterable
类,以回答您的问题,因为JsonArray
是实现Iterable
接口。
关于您的代码,我认为它也有效,如果您确切地说jsonObj
是JSONObject
的类型,并且它不仅仅是Object
。通过这种方式,您可以从循环体中消除容易出错的类型转换。
答案 1 :(得分:0)
您可能知道,每个循环only works for Iterables and arrays。
JSONArray doesn't implement iterable的原始json.org实现,但Gson implementation does,正如@Quirim和@BrianRoach所指出的那样。
json.org版本中有intend to implement it,但最后他们没有。{/ p>
回答你的3个问题: