【发布时间】:2018-08-26 23:28:11
【问题描述】:
我有一个 JSON 文件,它是我的 Android 应用程序的 Sqlite DB 的导出文件。它包含不同类型的不同列表:
{
"territories": [
{
"created": "Mar 17, 2018 8:30:28 PM",
"id": 1,
"name": "tt",
"parentId": 0
},
{
"created": "Mar 17, 2018 8:45:58 PM",
"id": 2,
"name": "aa",
"parentId": 0
}
],
"streets": [
{
"created": "Mar 18, 2018 7:10:23 AM",
"id": 1,
"name": "bb",
"parentId": 2
}
],
"buildings": [
{
"created": "Mar 18, 2018 7:10:28 AM",
"id": 1,
"name": "cc",
"parentId": 1
}
],
"flats": [
{
"created": "Mar 18, 2018 7:10:36 AM",
"id": 1,
"name": "dd",
"parentId": 1
}
],
"vists": [
{
"buildingId": 1,
"categoryId": 6,
"dateTime": "Mar 18, 2018 7:10:00 AM",
"description": "Xxxxx",
"flatId": 1,
"id": 1,
"streetId": 1,
"territoryId": 2
}
]
}
我知道如何解析包含具有相同对象的单个列表的 JSON 文件:
Gson gson = new Gson();
List<DbBaseType> territoryList = null;
try {
territoryList = gson.fromJson(new FileReader("path/my.export"),
new TypeToken<List<DbBaseType>>(){}.getType());
} catch (FileNotFoundException e) {
//...
}
但是如何解析包含具有不同对象的不同列表的文件呢?
【问题讨论】:
-
只要结构相同,就可以使用
Map<String, List<Pojo>>。虽然不知道如何处理visits。 -
你应该有
Map<String,Object[]> -
是的,
Visits是另一种类型。这就是问题的重点。 -
@pskink:我不想导出/导入所有内容。这只是部分数据。
-
@pskink:好的。我调查一下。谢谢指点。
标签: java android json sqlite gson