Android: ¿cuál es la mejor manera de almacenar los datos de JSON sin conexión para la aplicación en android?
Quiero implementar una aplicación, que mostrará el número de ruta, el jinete ha abordado en google map. Así que para encontrar el número de ruta necesito alguna información sobre las rutas, que se definen en el archivo JSON. La información del archivo JSON se procesará y analizará sin conexión desde la aplicación. Se debe instalar y desinstalar con la aplicación también. El archivo JSON contiene más de 100 route_direction. Se verá algo como el código de abajo. ¿En qué carpeta puedo almacenar el archivo JSON en mi proyecto de Android? ¿Y cuál es la mejor manera de almacenar datos como este?
Archivo JSON:
- Compruebe JSONArray para valor específico
- JSON a java utilizando gson
- Sugerencias de búsqueda de recursos de red en el cuadro Búsqueda rápida
- Convertir JSON a objeto anidado (objeto genérico) mediante GSON
- Obtener JSONObject de JSONArray
{"route_direction":[ { 1_ab:{ { stopsName_arrivalTime:{"abc":{"mon-fri":[05:33,06:00,06:30,...], "sat":[], "son":[] } }, stops_loca:{lat:53.337994, long:10.600423} , }, { stopsName_arrivalTime:{"def":{"mon-fri":[], "sat":[], "son":[] } }, stops_loca:{lat:53.740624, long:10.101322} }, { stopsName_arrivalTime:{"hgk":{"mon-fri":[], "sat":[], "son":[] } }, stops_loca:{lat:53.644834, long:10.203372} } } }, {1_ba:{ { stopsName_arrivalTime:{"hgk":{"mon-fri":[05:33,06:00,06:30], "sat":[], "son":[] } }, stops_loca:{lat:53.437994, long:10.400423} , }, { stopsName_arrivalTime:{"def":{"mon-fri":[], "sat":[], "son":[] } }, stops_loca:{lat:53.540624, long:10.601322} }, { stopsName_arrivalTime:{"abc":{"mon-fri":[], "sat":[], "son":[] } }, stops_loca:{lat:53.244834, long:10.703372} } } },........ ] }
- Parse simple JSON Array sin clave
- Obtener json de HttpResponse
- Jackson deserializar con deserializador personalizado causa una gran cantidad de llamadas GC y toma mucho más tiempo
- Formato de fecha recuperado de un servicio
- Usando Gson para deserializar a Json en un singleton
- Proguard mantener a los miembros de la clase
- Almacenamiento de datos en línea ANDROID
- Retrofit 2.0 java.lang.IllegalStateException: Se esperaba BEGIN_ARRAY pero era STRING
Tal vez usted puede guardarlos usando SharedPreferences . Puede almacenar un objeto / array json haciendo:
Guardar json en SharedPreferences:
PreferenceManager.getDefaultSharedPreferences(context).edit() .putString("theJson",jsonObject.toString()).apply();
Obtener el json almacenado:
JsonObject jsonObject = PreferenceManager. getDefaultSharedPreferences(this).getString("theJson","");
Básicamente, hay dos lugares donde se pueden almacenar materias primas: assets / y res / raw / (raw resources). Estos han sido discutidos mucho, por ejemplo, ver los enlaces:
La razón de los activos y recursos crudos en Android
http://thedevelopersinfo.com/2009/11/27/using-files-as-raw-resources-in-android/
http://www.41post.com/3985/programming/android-load-files-from-the-assets-and-raw-folders
Almacena archivos abultados que desea empaquetar con su aplicación en la carpeta de activos
https://developer.android.com/tools/projects/index.html
Principal / activos /
Esto está vacío. Puede utilizarlo para almacenar archivos de activos sin procesar. Los archivos que guarda aquí se compilan en un archivo .apk tal cual, y se conserva el nombre de archivo original. Puede navegar por este directorio de la misma manera que un sistema de archivos típico usando URIs y leer archivos como un flujo de bytes usando AssetManager. Por ejemplo, esta es una buena ubicación para texturas y datos de juegos.
Vea esta pregunta sobre cómo leer de los activos.
- Barra de estado blanca cuando se utiliza Admob en el diseño de la actividad
- Licencia de licencia de Android que va directamente a applicationError (…)