Download the PHP package rdx/jsonpathstreamer without Composer
On this page you can find all versions of the php package rdx/jsonpathstreamer. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Please rate this library. Is it a good library?
Informations about the package jsonpathstreamer
JSON Path Streamer
Uses salsify/jsonstreamingparser to parse a JSON file, and stream its tokens. This package adds features to simplify that process.
In a very big JSON file, it's very important to know where the parser is, to know which few parts to keep. It provides an interface for that. For very simple JSON parsing, there's even a configurable method, without any more parse/JSON formatting logic.
See examples/
for more examples. Run examples/speed.php
for a speed comparison.
DIY - Surgical precision
// MUST implement gotPath() and gotValue()
class MyListener extends \rdx\jsonpathstreamer\PathAwareJsonListener {
public function gotPath(array $path) {
// Ignore valueless paths (empty arrays etc)
}
public function gotValue(array $path, $value) {
// Save only values within {"foo": {"bar": {...}}}
if (array_slice($path, 0, 2) == ['foo', 'bar']) {
// Ignore long "description" texts
if (end($path) != 'description') {
$this->rememberValue(array_slice($path, 2), $value);
}
}
}
// Optional
public function stopAfter() {
// Stop parsing after foo/bar because there's nothing I want there
return ['#foo/bar/#'];
}
}
Configurable - easy
// MUST implement getRules()
class MyListener extends \rdx\jsonpathstreamer\RegexConfigJsonListener {
public function getRules() {
// Save only "name", for all users into their original position
return [
'#^users/[^/]+/(name)(/|$)#',
'#^offices/[^/]+/(name)(/|$)#',
];
}
}
Configurable - conversion
// MUST implement getRules()
class MyListener extends \rdx\jsonpathstreamer\RegexTargetConfigJsonListener {
public function getRules() {
// Save only "name", for all users and offices, into the same list
return [
'#^users/([^/]+)/(name)(/|$)#' => 'entities/$1/$2',
'#^offices/([^/]+)/(name)(/|$)#' => 'entities/$1/$2',
];
}
}
All versions of jsonpathstreamer with dependencies
PHP Build Version
Package Version
Requires
salsify/json-streaming-parser Version
^6.0
The package rdx/jsonpathstreamer contains the following files
Loading the files please wait ....