java.lang.ClassCastException: org.json.simple.JSONArray ne peut pas être lancé pour org.json.JSONArray
J'ai besoin de lire un JsonArray
de données à partir d'un fichier (sur une carte SD) et la stocker dans une base de données SQLite.
mais je suis java.lang.ClassCastException: org.json.simple.JSONArray cannot be cast to org.json.JSONArray
exception lors de l'analyse des données à JsonArray
.
De données dans le fichier est très gros, l'ensemble de données ne peuvent pas être stockés dans une seule Chaîne de caractères ou une Chaîne de Tampon ou le Générateur de Chaîne.
Voici mon code.
FileReader fileReader = new FileReader(file_path);
Object obj = jsonParser.parse(fileReader);
JSONArray jsonArray = (JSONArray) obj; //Exception.
S'il vous plaît aider..
Les bibliothèques que vous utilisez à côté de Android standard?
Je suis à l'aide de json-lib-2.2.2-jdk15.jar et json-simple-1.1.1.jar.
Ne devriez-vous pas essayer d'utiliser un seul d'entre eux?
si je supprime json-simple-1.1.1.jar, jsonParser en me jetant une erreur.
Je suis à l'aide de json-lib-2.2.2-jdk15.jar et json-simple-1.1.1.jar.
Ne devriez-vous pas essayer d'utiliser un seul d'entre eux?
si je supprime json-simple-1.1.1.jar, jsonParser en me jetant une erreur.
OriginalL'auteur user2085965 | 2013-12-18
Vous devez vous connecter pour publier un commentaire.
Vérifier vos déclarations d'importation en haut de votre fichier source.
Vous avez probablement une ligne en disant:
Il devrait plutôt être:
Si vous travaillez dans eclipse, ou de toute autre intelligent IDE, le problème est probablement arrivé quand vous avez commencé à taper la ligne de départ avec
JSONArray
. À ce stade, l'IDE serait de vous montrer les différentes possibilités d'importation de la classeJSONArray
. Vous en avez un dansorg.json.JSONArray
et un enorg.json.simple.JSONArray
. Le dernier est celui de droite, mais vous choisissez la première, et votre IDE automatiquement ajouté une ligne d'importation en haut de votre fichier source java.De l'exception, le problème est tout à fait évident, l'exception qui vous dit que votre
obj
objet ne peut pas être converti enorg.json.JSONArray
objet tel qu'il est vraiment unorg.json.simple.JSONArray
objet. (À noter qu'il y a un différent entre les deux).Mise à jour
Si vous souhaitez utiliser
org.json.JSONArray
au lieu de cela, vous devez utiliser une autre classe quejsonParser
que c'est à partir de laorg.json.simple
paquet. Actuellement, vous sont le mélange des deux bibliothèques, et c'est quelles sont les causes de vos problèmes.Si vous ne voulez pas faire l'analyse manuellement, vous pouvez utiliser GSON et de rendre la vie plus facile.
Voir ma réponse mis à jour. Vous devez supprimer
import org.json.JSONArray;
pasimport org.json.simple.JSONArray;
Très utile, merci! Dans mon cas, Eclipse entré "com.amazonaws.util.json.JSONArray" au lieu de "org.json.simple.JSONArray"
OriginalL'auteur Bjarke Freund-Hansen
Vous pouvez commencer par lire l'intégralité du contenu d'un fichier dans une Chaîne.
Maintenant, Vous aurez tout le contenu en Chaîne ( données variables ).
Après cela, vous pouvez utiliser jsonArray que vous le souhaitez.
OriginalL'auteur LoveToCode