¿Está bien para guardar una matriz JSON en SharedPreferences?
Tengo una matriz de JSON que necesito ahorrar. Estaba pensando en serializarlo, pero ¿sería mejor guardarlo como una cadena en SharedPreferences y luego reconstruirlo cuando necesite leerlo?
- Usar SharedPreferences en modo multiproceso
- Cómo resolver un error: getSharedPreferences (String, int) no está definido para el tipo nuevo View.OnClickListener () {}
- PreferenceFragment OnPreferenceClickListener () sólo funciona una vez
- No se puede acceder a las preferencias creadas por PreferenceActivity
- SharedPrefs se restablece después de configurar la configuración regional de la aplicación de Android
- Preferencias independientes para cada vista en una aplicación para Android
- ¿Cuánto dura un paquete?
- Accountmanager vs sharedpreference para la autenticación y la comunicación con el servidor
- Recuperación de valores de prefrences compartidos en otra actividad
- Preferencias compartidas de Android con múltiples actividades
- Copia de seguridad de Android 2.2: ¿Cómo hacer copias de seguridad DefaultSharedPreferences?
- Copia de seguridad de SharedPreferences de Android no funciona
- SharedPreferences en BroadcastReceiver parece no actualizar?
El objeto JSON en Java no implementa serialaizable fuera de la caja. He visto a otros extender la clase para permitir que, pero para su situación, simplemente recomendaría almacenar el objeto JSON como una cadena y utilizando su función toString (). He tenido éxito con esto.
editor.putString("jsondata", jobj.toString());
Y para recuperarlo:
String strJson = sharedPref.getString("jsondata","0");//second parameter is necessary ie.,Value to return if this preference does not exist. if(strJson != null) JSONObject jsonData = new JSONObject(strJson);
http://developer.android.com/reference/org/json/JSONObject.html#JSONObject(java.lang.String)
Depende del tamaño de la matriz. Suponiendo que no es ridículamente grande (menos de unos pocos cientos de Kb), sólo almacénelo a las preferencias compartidas. Si es más grande que eso, puede guardarlo en un archivo.
Guarde el JSON directamente. Míralo de esta manera: estás encapsulando la representación de datos. Si serializó un formato de objeto específico, se quedaría atascado con ese formato de objeto o tendrá que lidiar con posibles cambios en ese objeto y se preocupará por actualizar desde un formato de serialización antiguo a uno nuevo en el futuro. Guardándolo como JSON puede inflarlo como desee.
He hecho lo mismo … serializar un objeto a una cadena json y guardarlo en prefs compartidos. No hay problema, pero entiendo que en última instancia, los prefs son un archivo XML, por lo que si usted está leyendo / escribiendo mucho, no va a funcionar bien.
Sí. Los valores guardados con SharedPreferences deben ser primitivos o cadenas. ¿Qué forma tomaría el objeto JSON serializado si no es primitivo o String (o Set)? JSON es un formato de datos serializado. Úsalo, si eso es lo que ya tienes.
- ¿Diferencia entre los métodos onKey (), OnKeyDown () y dispatchKeyEvent () proporcionados por Android?
- Eliminar salto de línea en TabLayout