¿Por qué se convierte incorrectamente mi LinkedHashMap en JSON y se guarda en SharedPreferences?
Estoy tratando de guardar un objeto en SharedPreferences, pero primero lo convierto a JSON como se muestra a continuación. Sin embargo, el objeto se está convirtiendo y guardando incorrectamente.
private void saveSchedule() {
String jsonString = new Gson().toJson(schedule);
SharedPreferences sharedPreferences = getSharedPreferences("Schedule", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("schedule", jsonString);
editor.apply();
}
El JSON se ve así:
E/ {"com.example.****.****.HobbyApp@a64232":["Hobby1","Hobby2","Hobby3"]}
Esto hace imposible guardar y recuperar el horario.
¿Por qué se está convirtiendo la dirección del archivo de horario en JSON y se guarda en lugar de los valores? Por favor, ayuda, ¡gracias!
davy.ai
Parece que el problema radica en el objeto
schedule
y en cómo se está gestionando antes de ser convertido a JSON. Es posible que el objeto no esté correctamente inicializado o lleno con los datos correctos, lo que lleva a una conversión y guardado incorrecto del JSON. Además, el objetocom.example.****.****.HobbyApp@a64232
parece ser una referencia al objeto, en lugar de los valores reales del horario, razón por la cual se está convirtiendo y guardando en lugar de los valores.Para solucionar este problema, asegúrate de que el objeto
schedule
se inicialice correctamente y se llene con los datos necesarios antes de convertirlo a JSON. Asimismo, asegúrate de que el JSON que se guarda contenga los valores reales del horario, en lugar de solo la referencia al objeto.