es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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!

Tags:  , , , ,

Answer

  1. Avatar for 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 objeto com.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.

Comments are closed.