我正在使用org.json.simple.JSONArray和org.json.simple.JSONObject。我知道,这两个类JSONArray和JSONObject是不相容的,但我仍然希望做的相当自然的事情- 我想换了每一个JSONArray在每个迭代步骤一解析JSONObject(嵌套内部的JSONArray)。我尝试这样做:
org.json.simple.JSONArray
org.json.simple.JSONObject
JSONArray
JSONObject
JSONArray arr = ...; // <-- got by some procedure for(JSONObject o: arr){ parse(o); }
当我尝试编译此代码时,即使看起来很自然,实际上我也会收到“不兼容的类型”错误。所以,我的问题是迭代的最佳方法是什么JSONArray?
显然,org.json.simple.JSONArray实现了一个 原始 Iterator。这意味着每个元素都被视为Object。您可以尝试投射:
Object
for(Object o: arr){ if ( o instanceof JSONObject ) { parse((JSONObject)o); } }
这就是在Java 1.4和更早版本中所做的事情。