【问题标题】:How to parse a JSON file line by line in objective c如何在目标c中逐行解析JSON文件
【发布时间】:2018-01-01 15:33:51
【问题描述】:

我正在处理非常大的 JSON 文件,因此我不想读取整个文件然后迭代和解析每个数据条目。 相反,我想迭代 JSON 文件本身(例如:逐行/一次一个对象)。 我考虑过将下一行位置作为当前行数据的一部分,因此 JSON 是一个半链表,但我没有设法从 JSON 文件中提取特定行。 我是否错过了一种更简单的方法来实现这一目标?甚至可以从 JSON 文件中提取和解析特定行吗?

非常感谢!

【问题讨论】:

  • 你应该解释你想要归档的真正目标。出于多种原因,您想到的解决方案毫无意义。
  • 我有一个非常大的 JSON 文件作为系统输入的情况,我希望解析它。但是,我不认为将所有大量数据保存在内存中是正确的方法。更改为另一种格式的可能性较小,因为 JSON 已很好地集成在系统中。
  • 您只需要部分 JSON?如果没有,在内存中构建图表可能会导致更大的占用空间。

标签: ios objective-c json


【解决方案1】:

JSON 不是面向行的格式,因此“逐行”解析的想法没有任何意义。

也就是说,我知道至少有一个用于 iOS 的事件驱动 JSON 解析器,https://github.com/stig/json-framework。内置解析器 NSJSONSerialization 仅适用于整个文件。

【讨论】:

  • NSJSONSerialization 确实支持解析流。请参阅JSONObjectWithStream:options:error: 的文档。当然,结果仍然是一个巨大的对象模型。
  • 虽然它确实支持解析流 - 在流关闭并且完整的 JSON 数据可用之前,它不会提供任何结果或答案。您不能一次只解析部分 JSON 元素。
猜你喜欢
  • 1970-01-01
  • 2014-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-05
  • 2013-08-16
相关资源
最近更新 更多