Cómo guardar json array en el almacenamiento interno de Android

Así que estoy trabajando en un proyecto como este http://www.androidhive.info/2012/05/how-to-connect-android-with-php-mysql/ que me permite mostrar los valores de mi base de datos a mi aplicación android GUI.

Necesito guardar los valores de la base de datos que necesito en el almacenamiento interno de Android para poder acceder a él incluso si mi aplicación no está conectada al servidor. ¿Alguna ayuda?

Gracias

Puede escribir json entero como cadena en prefernces compartidos, y luego obtenerlo y analizarlo para mostrarlo en la interfaz gráfica de usuario incluso cuando el dispositivo está fuera de línea:

String str = json.toString(); SharedPreferences sharedPref = getSharedPreferences( "appData", Context.MODE_WORLD_WRITEABLE ); SharedPreferences.Editor prefEditor = getSharedPreferences( "appData", Context.MODE_WORLD_WRITEABLE ).edit(); prefEditor.putString( "json", str ); prefEditor.commit(); 

Si eligió la base de datos sqlite local como su solución, escribí una utilidad ligera para guardar su json en un sqlite.

Checkout git repo aquí. https://github.com/wenchaojiang/JSQL

Sólo necesita una línea de código.

 new JSQLite(yourJsonString, yourDB).persist(); 

Espero eso ayude

Considere el uso de una base de datos local para almacenar en caché los datos del servidor localmente, que es cómo la mayoría de las aplicaciones lo hace, aquí es un buen tutorial para sqlite en android Android SQLite

Si utiliza sólo uno o pocos JSONObjects del servidor puede utilizar SharedPreferences , es mucho más fácil y rápido editar / actualizar. ejemplo

Para obtener más información sobre el almacenamiento de Android : Android Storage

Usted puede intentar utilizar con Realm.io Un ejemplo simple como esto:

 public class City extends RealmObject { private String city; private int id; // getters and setters left out ... } // Insert from a string realm.beginTransaction(); realm.createObjectFromJson(City.class, "{ city: \"Copenhagen\", id: 1 }"); realm.commitTransaction(); 

¡¡¡Saludos!!!

Estoy trabajando en una aplicación que se conecta a una base de datos php-mysql en nuestro servidor, en lugar de guardar el resultado de la consulta en un archivo, debe guardarlo (al menos eso es lo que creo) en una base de datos interna de Android (Sqlite). Hay mucha información sobre bases de datos en Android.

Con este ejemplo puede ver cómo utilizar fácilmente sqlite y ContentProviders (una manera más limpia de acceder a los datos guardados en su base de datos.

Para guardar correctamente un JSONArray en su base de datos te recomiendo que uses las bibliotecas de Jackson para crear objetos de JSON, haciéndolos más fáciles de guardar.

Por último, si la cantidad de información es relativamente pequeña, también puede utilizar SharedPreferences, de esta manera se puede acceder a los datos más rápidamente porque se guarda en la memoria móvil.

Espero eso ayude 🙂

  //if you have already the json string String str = json.toString(); //if you want to convert list to json (with Gson): //foo - will be your list String str = new Gson().toJson(foo ); SharedPreferences sharedPref = getPreferences(Context.MODE_PRIVATE); SharedPreferences.Editor prefEditor = sharedPref.edit(); prefEditor.putString("pref_json_key", str); prefEditor.apply(); 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.