Skip to content

squix78/jsonstreamingparser

 
 

Repository files navigation

Build Status

php-streaming-json-parser

This is a simple, streaming parser for processing large JSON documents. Use it for parsing very large JSON documents to avoid loading the entire thing into memory, which is how just about every other JSON parser for PHP works.

For more details, I've written up a longer explanation of the JSON streaming parser that talks about pros and cons vs. the standard PHP JSON parser.

If you've ever used a SAX parser for XML (or even JSON) in another language, that's what this is. Except for JSON in PHP.

Usage

To use the JsonStreamingParser you just have to implement the \JsonStreamingParser\Listener interface. You then pass your Listener into the parser. For example:

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

That's it! Your Listener will receive events from the streaming parser as it works.

There is a complete example of this in example/example.php.

License

MIT License (c) Salsify, Inc.

About

A JSON streaming parser implementation in PHP.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%