Optimización del análisis de JSON en Android

Estoy desarrollando una aplicación para Android que necesita obtener una cantidad importante de datos de un feed de JSON. Este feed es un archivo JSON de una línea, con un peso aproximado de 400 ko, que contiene aproximadamente 10 matrices que necesito obtener.

Estoy usando la biblioteca JSON para Android para hacerlo, y la salida funciona bien, pero se tarda siglos (bien, 30 segundos aprox.) Para calcular. El paso de descarga se realiza rápidamente, es decir, la creación de los objetos JSON que parece ser muy larga. Aquí están mis pasos (quitar try / catch bloques y así sucesivamente).

JSONObject feed = new JSONObject(big_string_from_feed); JSONArray firstArray = feed.getJSONArray("key1"); JSONArray secondArray = feed.getJSONArray("key2"); 

[…]

Y después de pasar por todas mis matrices para obtener todos los elementos de la siguiente manera:

 for (int currentIndex =0;currentIndex<firstArray.length();currentIndex++){ JSONObject myObject = firstArray.getJSONObject(currentIndex); [....] } 

¿Hay algo mal en la forma en que hago esto? Hay una mejor manera de hacerlo ?

Muchas gracias por adelantado.

Si el rendimiento es una preocupación, utilice Jackson. Consulte https://github.com/eishay/jvm-serializers/wiki para obtener resultados de rendimiento. (Estos resultados se deben actualizar pronto para incluir el procesamiento de Jackson manual / tree-strings, que tendrá un rendimiento en algún lugar entre el procesamiento manual de Jackson y el procesamiento de cadenas de datos de Jackson.

Consulte json-simple (consulte http://code.google.com/p/json-simple ). Proporciona el análisis de estilo SAX de los flujos JSON y es más rápido.

  • Cómo analizar este JSON Array en android
  • Parsing Gson con Json no funciona para Android
  • Cómo obtener respuesta como String utilizando retrofit sin utilizar GSON o cualquier otra biblioteca en android
  • ¿Cómo analizar estos datos JSON utilizando GSON? Y ponerlo en un ArrayList
  • GSON lanzando "esperado esperaba un nombre pero era NUMBER en la línea 1 columna 8"?
  • Analizador de SAX de Android que no obtiene texto completo entre etiquetas
  • Android NumberFormatException: Doble no válido - excepto que el valor es un doble válido
  • JSON Parsing funciona en Android 4.0 pero no en Android <4.0
  • cómo cambiar los datos en un idioma diferente que viene del servidor?
  • Parse json cadena de fecha en android
  • Análisis de Android JSONObject
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.