p1ratrulezzz/json-streaming-parser

PHP中的JSON流解析器。

v8.0.1 2018-10-26 13:33 UTC

README

Build Status GitHub tag Packagist Minimum PHP Version License

这是一个简单的流式解析器,用于处理大型JSON文档。使用它来解析非常大的JSON文档,以避免将整个文档加载到内存中,这是PHP中其他JSON解析器的工作方式。

有关更多详细信息,我已撰写一篇关于JSON流解析器的更长的说明,其中讨论了与标准PHP JSON解析器的优缺点。

如果您在其他语言中曾经使用过SAX解析器(即使是JSON),那么这就是它。只是针对PHP中的JSON。

此包符合PSR-4PSR-1PSR-2。如果您注意到合规性疏忽,请通过pull request发送补丁。

安装

要安装JsonStreamingParser,您可以克隆此存储库或使用composer。

composer require salsify/json-streaming-parser

用法

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

例如

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

就是这样!当解析器工作时,您的Listener将接收到来自流式解析器的事件。

example/example.php中有一个完整的示例。

使用此库的项目

JSON集合解析器

JSON对象

许可

MIT许可证 (c) Salsify, Inc.