我正在尝试处理较大的(可能多达200M)JSON文件。文件的结构基本上是对象数组。
因此,遵循以下原则:
[ {"property":"value", "property2":"value2"}, {"prop":"val"}, ... {"foo":"bar"} ]
每个对象都具有任意属性,不必与数组中的其他对象共享它们(例如,具有相同的属性)。
我想对数组中的每个对象进行处理,并且由于文件可能很大,因此无法将整个文件内容都包含在内存中,无法解码JSON并遍历PHP数组。
因此,理想情况下,我想读取文件,为每个对象获取足够的信息并进行处理。如果存在类似的JSON库,则使用SAX类型的方法就可以了。
关于如何最好地解决此问题的任何建议?
我决定研究基于事件的解析器。尚未完成,当我发布令人满意的版本时,它将使用指向我工作的链接来编辑问题。
编辑:
我终于找到了我满意的解析器版本。在GitHub上可用:
https://github.com/kuma-giyomu/JSONParser
可能还有一些改进的余地,欢迎您提供反馈。