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.
composer require sunaoka/ndjson
{"test": "001"}
{"test": "002"}
{"test": "003"}
{"test": "004"}
{"test": "005"}
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"
}
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"
}
}
use Sunaoka\Ndjson\NDJSON;
$ndjson = new NDJSON('/path/to/file.ndjson');
$ndjson->writeline(['test' => '001']);
$ndjson->writeline(['test' => '002']);
{"test": "001"}
{"test": "002"}
use Sunaoka\Ndjson\NDJSON;
$ndjson = new NDJSON('/path/to/file.ndjson');
$ndjson->writelines([['test' => '001'], ['test' => '002']]);
{"test": "001"}
{"test": "002"}