Swift中的大JSON文件

时间:2019-06-04 18:19:14

标签: ios json swift api

我需要一个文件“ citylist.json”的帮助。 该文件为29 MB,如果我尝试将其添加到Swift项目中,我的笔记本电脑仅需10分钟即可加载文件。

有没有可以在Swift中使用大型JSON文件的解决方案? 我需要在线或远程使用此JSON文件。

我正在使用天气API,当我需要通过键入名称来查找城市时,有时应用程序崩溃,因为您编写的内容不符合天气API。 该公司为我提供了API,建议每个人都需要使用城市代码查找城市,并在我的JSON文件中找到包含该代码的所有城市的列表。 这就是为什么我需要使用此文件的原因

1 个答案:

答案 0 :(得分:1)

JSONSerialization速度很慢。有两种可能的解决方案。

  1. 使用数据库:

    • 为您的应用添加数据库支持
    • 将JSON转换为数据库格式
    • 搜索数据库而不是JSON
  2. 根据城市名称的前两个(或三个)字母将一个JSON拆分为多个文件。

假设您的JSON具有以下结构:

{
    cities: [
      ...,
      Berlin: {},
      ...,
        Monako: {},
        Moscow: {},
        ...,
    ],
}

您可以将其拆分为带有两个字母名称的许多JSON文件,例如文件mo.json

{
    cities: [
      ...,
        Monako: {},
        Moscow: {},
        ...,
    ],
}

这样,您可以加快序列化过程。

  • 您在捆绑中搜索适当的文件
  • 您搜索符合查询条件的所有城市
  • 例如:查询Mos将搜索mo.json并显示Moscow,而不显示Monako