J'ai créé cet analyseur JSON et je souhaite obtenir une copie de toutes les adresses différentes mais pas d'adresses répétées (il y a aussi beaucoup d'autres JSONobjects impliqués). Mais je continue d'obtenir une réponse d'erreur quand j'arrive à featuresArray.add(i, feature);
. Qu'est-ce que je fais mal ici?Java utilisant continue dans la boucle pour la vérification des chaînes en double
private static void simpleJSON() throws IOException {
JSONParser parser = new JSONParser();
JSONArray featuresArray = new JSONArray();
String check = "check";
try {
Object obj = parser.parse(new FileReader(filepath));
JSONArray jsonarray = (JSONArray) obj;
for (int i = 0; i < jsonarray.size(); i++) {
JSONObject jsonobject = (JSONObject) jsonarray.get(i);
String location_name = (String) jsonobject.get("location_name");
String street_address = (String) jsonobject.get("street_address");
if (street_address.equals(check)) {
continue;
}
check = street_address;
Map feature = new LinkedHashMap();
feature.put("location_name", location_name);
feature.put("street_address", street_address);
featuresArray.add(i, feature);
}
} catch (ClassCastException c) {
c.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
Voici le javadoc de la méthode lançant l'exception (que vous avez omis de publier): https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html#add-int- E-. Il explique quand l'exception est levée. Lire les traces de la pile. Lisez javadoc. Pourquoi n'utilisez-vous pas 'add (feature)'? N'utilisez pas non plus de types bruts (vous devriez aussi avoir des avertissements pour le compilateur). –
quelle bibliothèque vous utilisez pour l'analyse est-il Gson? –