考虑到下面的 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 中会忽略数据库提供的好处。
您已经在 JSON 中描述了很多关系数据库结构(但是松散): 包含位置和描述信息的属性表。 包含姓名和联系人的人员表。 与属性(property)和人员(居民、经理、所有者、服务提供商)相关的角色表。 包含与属性(property)和人员相关的条款的租赁表。 包含与租赁相关的付款信息的付款表。
您可以在 JSON 中手动写入主键,注意匹配表之间的关系,然后通过处理修改后的 JSON 插入结果行。 Here's a link to SQLite doc关于使用带自动增量的 INSERT。
关于java - 在 Android SQLite 中将许多嵌套的 JSON 对象和数组存储为数据结构的好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31150410/