¿JSON en un campo del sqlite?

Estoy escribiendo una aplicación que se comunica con una API web, que responde con JSON. Actualmente, estoy traduciendo los objetos JSON a objetos Java usando gson (que es impresionante, por cierto).

Ahora, quiero almacenar algunos de estos objetos en una base de datos SQLite. Sin embargo, tienen muchas propiedades que nunca se usarían en consultas (por ejemplo, no voy a ORDER ing, WHERE ing, o algo así con esas propiedades), así que siento que es innecesario crear columnas para todos ellos. Lo que estoy pensando hacer es:

  • Sólo tienen columnas para los datos esenciales que se utilizarán al consultar la base de datos
  • Tiene una columna TEXT o BLOB (¿cuál recomendarías?) Que almacena el JSON real, para que pueda recrear mi objeto Java y acceder a todos los datos.

Esto haría mi vida más fácil y racionalizar mi código (no tendría que escribir código muy diferente cuando se trata de datos de la API vs datos de la base de datos).

Sin embargo, aunque no veo inconvenientes, se siente un poco sospechoso.

¿Qué tipo de problemas crees que me encontraría si usara esta técnica?

One Solution collect form web for “¿JSON en un campo del sqlite?”

Lo principal que no me gustaría es confiar en la estructura del JSON almacenado / recuperado para ser válido, ya que está completamente fuera de las manos de la base de datos. No es que usted no puede tomar precauciones contra posibles problemas, pero si el JSON es de alguna manera truncado o comprometido de alguna manera de una manera que dispara el analizador, entonces está perdiendo el objeto entero en lugar de sólo una propiedad inválida o truncada. Si eso es un riesgo aceptable, entonces es probablemente una técnica razonable.

  • Consulta sqlite de Android para que coincida con la columna que contiene el texto
  • Sqlite actualiza una columna basada en la cláusula where android
  • Acceso a una base de datos .sqlite descargada determinada en el almacenamiento externo desde una aplicación de Android
  • Intento escribir una base de datos readonly ... pero no estoy
  • Consulta de mejores prácticas de SQLite para Android
  • Actualizar consulta sqlite - Android
  • SQLiteException: cerca de "": error de sintaxis (código 1) al compilar
  • GetWritableDatabase () VS getReadableDatabase ()
  • Tabla de actualización de Android sqlite siempre devuelve 0
  • La lectura de cadena gzip en sqlite3 base de datos (python escribir, Java Android leer)
  • Error de SQLIte de Android: No se pudo leer la fila 0, col 1 de CursorWindow
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.