jsonstreamingparser

A JSON streaming parser implementation in PHP.

  • Owner: salsify/jsonstreamingparser
  • Platform:
  • License:: MIT License
  • Category::
  • Topic:
  • Like:
    0
      Compare:

Github stars Tracking Chart

Streaming JSON parser for PHP

Build Status
GitHub tag
Packagist
Coverage Status
Minimum PHP Version
License

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.

This package is compliant with PSR-4, PSR-1, and
PSR-2.
If you notice compliance oversights, please send a patch via pull request.

Installation

To install JsonStreamingParser you can either clone this repository or you can use composer

composer require salsify/json-streaming-parser

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();
  fclose($stream);
} 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.

Running tests

make test

Projects using this library

JSON Collection Parser

JSON Objects

License

MIT License (c) Salsify, Inc.

Main metrics

Overview
Name With Ownersalsify/jsonstreamingparser
Primary LanguagePHP
Program languagePHP (Language Count: 2)
Platform
License:MIT License
所有者活动
Created At2013-02-08 15:13:19
Pushed At2023-07-11 12:20:03
Last Commit At2023-05-09 06:28:47
Release Count18
Last Release Namev8.3.1 (Posted on )
First Release Namev1.0 (Posted on 2013-12-23 11:51:37)
用户参与
Stargazers Count759
Watchers Count59
Fork Count132
Commits Count160
Has Issues Enabled
Issues Count53
Issue Open Count8
Pull Requests Count40
Pull Requests Open Count0
Pull Requests Close Count7
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private