¿Por qué rara vez se utiliza JSON para almacenar datos en el desarrollo de Android?
En el desarrollo de Android, cuando se trata de almacenamiento de objetos, el enfoque habitual es implementar directamente "Serializable". Con respecto a esta interfaz, garantiza que los objetos de las clases que implementan esta interfaz puedan ser ingresados y generados directamente por ObjectOutput/InputStream, es decir, serializados. Es conveniente, pero tampoco bueno.
Cuando se habla de "serialización", la mayoría de la gente piensa en "serializable", pero en realidad "serialización" simplemente se refiere al proceso de convertir la información de estado de un objeto en una forma que pueda almacenarse o transmitirse. El 'serializable' de Java es un tipo de serialización de bytes.
Una desventaja de "Serialziable" es que las clases que implementan esta interfaz perderán flexibilidad. El artículo 74 de "Java efectivo" también lo señala. La implementación de esta clase serializable dependerá de la evolución interna de esta clase, que tiene su raíz en UID (UID de versión serial). Si no especifica un UID, cada vez que se serialice la clase, se generará un UID basado en el estado actual de la clase. Imagine un escenario: esta clase se ha exportado, por ejemplo, a otras empresas o departamentos, y luego modifica esta clase y luego, cuando vuelve a publicar esta clase, los programadores de otras empresas o departamentos pueden obtener una "InvalidClassException".
La razón fundamental de esta situación es que no tienes control sobre la implementación de la serialización, ni el proceso de generación de UID. Esto requiere un formulario de serialización personalizado. En Android, Google recomienda la serialización JSON. Además, los programadores de Android también pueden utilizar herramientas como Gson para la serialización y deserialización.
A diferencia de la serialización de bytes 'Serializable', la serialización JSON es una serialización de caracteres.
Además, "Serializable" sólo es adecuado para almacenar objetos. Debido a que 'Serializalbe' necesita realizar muchas E/S durante el proceso de transmisión, Android proporciona 'Parcelable'.
Finalmente, el interrogador no debe comparar la base de datos con JSON o XML. Si es así, solo puede comparar la base de datos con el almacenamiento de archivos. La base de datos es adecuada para almacenar grandes cantidades de datos con relaciones complejas, lo que facilita su gestión y revisión. Por el contrario, el almacenamiento de archivos es adecuado para pequeños volúmenes de datos con relaciones simples.