java - 在 Android SQLite 中将许多嵌套的 JSON 对象和数组存储为数据结构的好方法?

标签 java android json sqlite orm

考虑到下面的 JSON,将其存储到 SQLite 中的最佳方式是什么?

我已经在使用 Gson 解析它,但想知道将它存储到 SQLite 中并能够在没有解析问题的情况下检索它的无痛方式是什么.

我已经将 desc, deposit 对象存储为 HashMaps。我的问题是 lease 对象。存储 leasees 数组的优雅方式是什么?

我应该创建另一个 Leasee 对象吗?然后将ArrayList序列化为Blob存入数据库?

{
  "name": "1",
  "desc": {
    "country": "1",
    "city": "1",
    "postal": "1",
    "street": "1",
    "substreet": "1",
    "year": 1,
    "sqm": 1
  },
  "owner": [
    "1"
  ],
  "manager": [
    "1"
  ],
  "lease": {
    "leasee": [
      {
        "userId": "1",
        "start": {
          "$date": 1420070400000
        },
        "end": {
          "$date": 1420070400000
        }
      }
    ],
    "expire": {
      "$date": 1420070400000
    },
    "percentIncrease": 1,
    "dueDate": 1
  },
  "deposit": {
    "bank": "China Construction Bank",
    "description": "Personal Bank Account USA"
  }
}

最佳答案

将所有内容存储在 BLOB 中会忽略数据库提供的好处。

您已经在 J​​SON 中描述了很多关系数据库结构(但是松散): 包含位置和描述信息的属性表。 包含姓名和联系人的人员表。 与属性(property)和人员(居民、经理、所有者、服务提供商)相关的角色表。 包含与属性(property)和人员相关的条款的租赁表。 包含与租赁相关的付款信息的付款表。

您可以在 JSON 中手动写入主键,注意匹配表之间的关系,然后通过处理修改后的 JSON 插入结果行。 Here's a link to SQLite doc关于使用带自动增量的 INSERT。

关于java - 在 Android SQLite 中将许多嵌套的 JSON 对象和数组存储为数据结构的好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31150410/

相关文章:

java - java类重载配置依赖的设计

java - 更改 JCheckBox 'ticked' 颜色

java - 使用google fit android api读取数据时获取 "Task is not yet complete error"

android - 从另一个类调用微调器给出异常

javascript - 在 JS 中动态创建树/嵌套 JSON

json - Powershell Invoke-WebRequest 和字符编码

java - 我需要帮助打印出程序中出现的最大绝对差异的价格。 (我快完成了。)

Java Bouncy caSTLe加密: decrypted file is empty when encrypted by the same program

android - 是否可以为 Xcode Target 等 Android 项目创建多个目标

json 忽略标记 ("-") 不适用于嵌入式子结构