sunaoka / ndjson
A PHP library to read and write NDJSON (Newline Delimited JSON)
Installs: 21 314
Dependents: 0
Suggesters: 0
Security: 0
Stars: 7
Watchers: 2
Forks: 4
Open Issues: 0
Requires
- php: ^5.5 || ^7.0 || ^8.0
- ext-json: *
Requires (Dev)
- phpunit/phpunit: ^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0 || ^10.0 || ^11.0
README
A PHP library to read and write NDJSON (Newline Delimited JSON).
Read and write one line at a time to execute with low memory usage.
For better performance, you can also read and write on multiple lines.
Installation
composer require sunaoka/ndjson
Usage
Read
Example NDJSON
{"test": "001"} {"test": "002"} {"test": "003"} {"test": "004"} {"test": "005"}
Read one line at a time
use Sunaoka\Ndjson\NDJSON; $ndjson = new NDJSON('/path/to/file.ndjson'); while ($json = $ndjson->readline()) { var_dump($json); }
array(1) {
["test"]=>
string(3) "001"
}
array(1) {
["test"]=>
string(3) "002"
}
array(1) {
["test"]=>
string(3) "003"
}
array(1) {
["test"]=>
string(3) "004"
}
array(1) {
["test"]=>
string(3) "005"
}
Read 3 lines at a time
use Sunaoka\Ndjson\NDJSON; $ndjson = new NDJSON('/path/to/file.ndjson'); foreach ($ndjson->readlines(3) as $jsons) { var_dump($jsons); }
array(3) {
[0]=>
array(1) {
["test"]=>
string(3) "001"
}
[1]=>
array(1) {
["test"]=>
string(3) "002"
}
[2]=>
array(1) {
["test"]=>
string(3) "003"
}
}
array(2) {
[0]=>
array(1) {
["test"]=>
string(3) "004"
}
[1]=>
array(1) {
["test"]=>
string(3) "005"
}
}
Write
Write one line at a time
use Sunaoka\Ndjson\NDJSON; $ndjson = new NDJSON('/path/to/file.ndjson'); $ndjson->writeline(['test' => '001']); $ndjson->writeline(['test' => '002']);
{"test": "001"}
{"test": "002"}
Write multiple lines at a time
use Sunaoka\Ndjson\NDJSON; $ndjson = new NDJSON('/path/to/file.ndjson'); $ndjson->writelines([['test' => '001'], ['test' => '002']]);
{"test": "001"}
{"test": "002"}