一尘不染

带有JSONArray和JSONObject的Foreach

json

我正在使用org.json.simple.JSONArrayorg.json.simple.JSONObject。我知道,这两个类JSONArrayJSONObject是不相容的,但我仍然希望做的相当自然的事情-
我想换了每一个JSONArray在每个迭代步骤一解析JSONObject(嵌套内部的JSONArray)。我尝试这样做:

JSONArray arr = ...; // <-- got by some procedure
for(JSONObject o: arr){
    parse(o);
}

当我尝试编译此代码时,即使看起来很自然,实际上我也会收到“不兼容的类型”错误。所以,我的问题是迭代的最佳方法是什么JSONArray


阅读 810

收藏
2020-07-27

共1个答案

一尘不染

显然,org.json.simple.JSONArray实现了一个 原始
Iterator。这意味着每个元素都被视为Object。您可以尝试投射:

for(Object o: arr){
    if ( o instanceof JSONObject ) {
        parse((JSONObject)o);
    }
}

这就是在Java 1.4和更早版本中所做的事情。

2020-07-27