JSONArrayとJSONObjectを使ったForeach
私は org.json.simple.JSONArray
と org.json.simple.JSONObject
を使用しています。JSONArrayと
JSONObjectは互換性がないことは分かっていますが、ごく当たり前のことをしたいのです。つまり、
JSONArrayを for-each して、各反復ステップで一つの
JSONObject(
JSONArray` の内部に入れ子) をパースしたいのです。私はそれを次のようにしようとします。
JSONArray arr = ...; // <-- got by some procedure
for(JSONObject o: arr){
parse(o);
}
このコードをコンパイルしようとすると、とても自然に見えるにもかかわらず、確かに "incompatible types" というエラーが表示されます。そこで質問ですが、JSONArray
を繰り返し処理する最良の方法は何でしょうか?
19
3
JSONArray
を
for eachで反復処理することはできないようです。このように
JSONArray` をループさせることができます。ソース
どうやら、
org.json.simple.JSONArray
は raw イテレータを実装しているようです。これは、各要素がObject
と見なされることを意味します。キャストしてみてください。これは、Java 1.4以前では、このように行われていました。
Java 8 を使っている場合は
それが動作することを証明するために、簡単なテストを追加しました:。
次の依存関係を
pom.xml
ファイルに追加してください (動作することを証明するために、この回答を投稿したときにあった古い jar を使用しました)。そして、簡単なテストコードスニペットは、次のようになります。
と出力されます。