在(SQLite)数据库中解析Google位置历史记录

问题描述 投票:-1回答:1

我正在尝试解析从Google Takeout下载个人位置历史记录并将其放入Android应用程序中的本地数据库时收到的非常大的JSON文件(对我来说大约100MB,大约400万行)。

JSON文件的结构看起来像this,我在Pastebin上放了一个非常小的样本来显示结构。

{
    "locations" : [ {
      "timestampMs" : "1518722738911",
      "latitudeE7" : 123456789,
      "longitudeE7" : 123456789,
      "accuracy" : 21
    }, {
      "timestampMs" : "1518722617339",
      "latitudeE7" : 123456789,
      "longitudeE7" : 123456789,
      "accuracy" : 21,
      "activity" : [ {
        "timestampMs" : "1518722603634",
        "activity" : [ {
          "type" : "TILTING",
          "confidence" : 100
        } ]
      }, {
        "timestampMs" : "1518722660455",
        "activity" : [ {
          "type" : "STILL",
          "confidence" : 55
        } ]
      } ]
    } ]
}

使用GSON在Java中解析它时,您将获得LinkedTreeMap。我知道GSON不是那里最快的解析器,但这是另一个问题。

将所有JSON数据存储到SQLite数据库中的目的是让它更快地可用并进行分析,因此我希望数据尽可能实用。

我尝试创建两个单独的表,一个用于简单的时间戳及其经度和经度,另一个用于与时间戳本身相关的活动。

但是,我无法完全理解如何正确迭代这个TreeMap,将这些条目转换为简单的行,因为它与许多子数组相当混乱。

SQLite甚至是正确的数据库,还是我应该使用其他类似的数据呢?你会如何解析这样的文件?

任何提示或建议都非常感谢,谢谢。

android json sqlite
1个回答
-2
投票

您可以使用http://www.jsonschema2pojo.org/自动将Json转换为Pojo。

© www.soinside.com 2019 - 2024. All rights reserved.