Java.lang.ClassCastException: org.json.simple.JSONArray no se puede convertir en org.json.JSONArray

Tengo que leer un JsonArray datos de un archivo (en una tarjeta SD) y almacenar en una base de datos SQLite.

Pero estoy recibiendo un java.lang.ClassCastException: org.json.simple.JSONArray cannot be cast to org.json.JSONArray excepción al analizar datos a JsonArray .

Los datos en el archivo son muy grandes, los datos enteros no se pueden almacenar en una sola cadena o String Buffer o String Builder.

Aquí está mi código.

 FileReader fileReader = new FileReader(file_path); Object obj = jsonParser.parse(fileReader); JSONArray jsonArray = (JSONArray) obj; // Exception. 

Por favor ayuda..

2 Solutions collect form web for “Java.lang.ClassCastException: org.json.simple.JSONArray no se puede convertir en org.json.JSONArray”

Compruebe sus instrucciones de importación en la parte superior de su archivo de origen.

Usted probablemente tiene una línea diciendo:

 import org.json.JSONArray; 

Debería ser:

 import org.json.simple.JSONArray; 

Si está trabajando en eclipse o en cualquier otro IDE inteligente, el problema probablemente ocurrió cuando comenzó a escribir la línea que comienza con JSONArray . En ese momento, el IDE le mostraría diferentes posibilidades de importar la clase JSONArray . Usted tiene uno en org.json.JSONArray y uno en org.json.simple.JSONArray . Esta última es la correcta, pero elige la primera y su IDE agregó automáticamente una línea de importación en la parte superior de su archivo java de origen.

De la excepción el problema es bastante evidente, la excepción le dice que su objeto obj no se puede org.json.JSONArray a un objeto org.json.JSONArray ya que es realmente un objeto org.json.simple.JSONArray . (Tenga en cuenta que hay una diferencia entre los dos).

Actualizar

Si desea usar org.json.JSONArray en org.json.JSONArray lugar, debe usar otra clase que jsonParser ya que ésta es del paquete org.json.simple . Actualmente está mezclando las dos bibliotecas, y eso es lo que causa sus problemas.

Primero puede leer todo el contenido del archivo en una cadena.

 FileInputStream fileInputStream = null; String data=""; StringBuffer stringBuffer = new StringBuffer(""); try{ fileInputStream=new FileInputStream(filename); int i; while((i=fileInputStream.read())!=-1) { stringBuffer.append((char)i); } data = stringBuffer.toString(); csvFile.delete(); } catch(Exception e){ LoggerUtil.printStackTrace(e); } finally{ if(fileInputStream!=null){ fileInputStream.close(); } } 

Ahora tendrá todo el contenido en String (variable de datos).

 JSONParser parser = new JSONParser(); org.json.simple.JSONArray jsonArray= (org.json.simple.JSONArray) parser.parse(data); 

Después de eso, puede utilizar jsonArray como desee.

  • ¿Cuál es la manera más rápida de analizar una cadena JSON en una tabla SQLite?
  • Envío de datos JSON de Android a PHP y escritura a archivo de texto
  • Analizar datos JSON utilizando JSONReader o JSONObject / JSONArray
  • Que es mejor en términos de análisis de rendimiento en Android, XML o JSON?
  • Problema al analizar JSON
  • Subida de imagen multiparte de Android con HttpConnectionParams obsoleta en nueva API
  • ¿Cómo recuperar datos de la base de datos de firebase que está teniendo matriz anidada y estructura de objetos?
  • Dibujo de rutas de conducción con waypoints en android (Google Maps, api dirección de Google, json parsing, decodificar google polyline)
  • Cómo convertir json objeto en cadena en android ..?
  • Uso del archivo JSON en los recursos de la aplicación para Android
  • Java.lang.String no se puede convertir a JSONObject desde Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.