salsify/json-streaming-parser

PHP中的JSON流式解析器。

v8.3.1 2023-05-09 10:37 UTC

README

Build Status GitHub tag Packagist Coverage Status Minimum PHP Version License

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

有关更多详细信息,我已编写了一篇更长的说明,介绍了PHP 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

运行测试

make test

使用此库的项目

JSON集合解析器

JSON对象

许可

MIT许可 (c) Salsify, Inc.