im0rtality/jsonstreamingparser

PHP 中 JSON 的流式解析器。

v4.0.0 2014-07-04 14:50 UTC

This package is not auto-updated.

Last update: 2024-09-24 06:56:26 UTC


README

Build Status

非原创

代码来源于 https://github.com/salsify/jsonstreamingparser,并进行了一些修改

  • 从监听器中移除了 file_position 回调(我们不需要它,并且它带来了显著的性能提升)
  • PSR2

功能

  • 基于流的 - 内存占用低,不会随着文件大小增长
  • 类似于 SAX 解析器

已知缺点

  • 性能不如预期(吞吐量 - 约 1MB 每秒 9 秒,VirtualBox,Debian 7,4.3GHz CPU,单核)

使用方法

要使用 JsonStreamingParser,只需实现 JsonStreamingParser\Listener 接口。然后将您的 Listener 传递给解析器。例如

$stream = fopen('doc.json', 'r');
$listener = new YourListener();
try {
  $parser = new Parser($stream, $listener);
  $parser->parse();
} catch (Exception $e) {
  fclose($stream);
  throw $e;
}

这样就完成了!您的 Listener 将会接收到流式解析器在工作时的事件。

许可

MIT 许可证