java.lang.Classcastexception-Fehler: org.json.einfach.JSONArray kann nicht umgewandelt werden, org.json.JSONArray
Ich brauche zum Lesen eine JsonArray
Daten aus einer Datei (auf SD-Karte) und speichern Sie es in eine SQLite-Datenbank.
aber ich bin immer ein java.lang.ClassCastException: org.json.simple.JSONArray cannot be cast to org.json.JSONArray
- Ausnahme beim Parsen der Daten zu JsonArray
.
Daten in die Datei ist sehr groß, die ganzen Daten können nicht gespeichert werden, in einem einzigen String oder String-Puffer oder String-Builder.
Hier ist mein code.
FileReader fileReader = new FileReader(file_path);
Object obj = jsonParser.parse(fileReader);
JSONArray jsonArray = (JSONArray) obj; //Exception.
Bitte helfen..
Welche Bibliotheken benutzt du neben den standard-Android?
Ich bin mit json-lib-2.2.2-jdk15.jar und json-simple-1.1.1.jar.
Sollten Sie nicht versuchen, nur einer von Ihnen?
wenn ich entfernen json-simple-1.1.1.jar, jsonParser wirft mir einen Fehler.
Ich bin mit json-lib-2.2.2-jdk15.jar und json-simple-1.1.1.jar.
Sollten Sie nicht versuchen, nur einer von Ihnen?
wenn ich entfernen json-simple-1.1.1.jar, jsonParser wirft mir einen Fehler.
InformationsquelleAutor user2085965 | 2013-12-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überprüfen Sie Ihre import-Anweisungen am Anfang der Quelldatei.
Vermutlich haben Sie eine Zeile mit dem Inhalt:
Sollte es stattdessen sein:
Wenn Sie arbeiten in eclipse oder andere intelligente IDE, die das problem wohl passiert, wenn Sie gestartet, die Eingabe der Zeile beginnend mit
JSONArray
. An diesem Punkt, die IDE würde zeigen Ihnen die verschiedenen Möglichkeiten den Import der KlasseJSONArray
. Sie haben eine inorg.json.JSONArray
und eine inorg.json.simple.JSONArray
. Die letztere ist die richtige, aber Sie wählen Sie die erste und die IDE wird automatisch Hinzugefügt, eine import-Zeile an der Spitze der source-java-Datei.Aus der Ausnahme, das problem ist ziemlich offensichtlich, dass die exception sagt dir, dass dein
obj
Objekt kann nicht umgewandelt werden, einorg.json.JSONArray
Objekt, wie es wirklich ist, einorg.json.simple.JSONArray
Objekt. (Beachten Sie, dass es einen Unterschied zwischen den beiden).Update
Wenn Sie verwenden möchten
org.json.JSONArray
verwenden Sie stattdessen eine andere Klasse alsjsonParser
als dieses ist von derorg.json.simple
Paket. Derzeit mischen Sie die beiden Bibliotheken, und das ist, was die Ursachen Ihrer Beschwerden.Wenn Sie nicht wollen, zu tun, die Analyse manuell, können Sie mit GSON und machen das Leben leichter.
Siehe meine aktualisierte Antwort. Sie sollten zu entfernen
import org.json.JSONArray;
nichtimport org.json.simple.JSONArray;
Sehr hilfreich - vielen Dank! In meinem Fall Eclipse eingegeben "com.amazonaws.util.json.JSONArray" statt "org.json.einfach.JSONArray"
InformationsquelleAutor Bjarke Freund-Hansen
Können Sie zuerst Lesen Sie den gesamten Inhalt der Datei in einen String.
Nun haben Sie den gesamten Inhalt in String ( data variable ).
Nach, die Sie verwenden können, jsonArray, wie Sie wollen.
InformationsquelleAutor LoveToCode