Download the PHP package remorhaz/php-json-data without Composer
On this page you can find all versions of the php package remorhaz/php-json-data. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download remorhaz/php-json-data
More information about remorhaz/php-json-data
Files in remorhaz/php-json-data
Package php-json-data
Short Description JSON Data Accessors
License MIT
Homepage https://github.com/remorhaz/php-json-data
Informations about the package php-json-data
PHP JSON Data Accessors
This library provides infrastructure for JSON documents processing.
Requirements
- PHP 8.1 or newer.
- Internationalization functions (ext-intl) - to compare Unicode strings.
- JSON extension (ext-json) - to encode and decode JSON documents.
Node Values
ValueInterface
can be used to represent JSON document or it's part. There is a set of descendant interfaces that provide access to typed values:
ScalarValueInterface
ArrayValueInterface
ObjectValueInterface
NodeValueInterface
includes information about value's path in the document, so it can be used to represent values that really exist in some JSON document. Calculated values that have no paths should implement basic ValueInterface
.
Node Value Factories
This type of objects is intended to create node values from some source. This library includes two implementations of node value factories:
DecodedJson\NodeValueFactory
creates node value from raw PHP values (produced byjson_decode()
function or created manually).EncodedJson\NodeValueFactory
creates node value directly from encoded JSON string.
Example
Event Streams
JSON document can be represented as a stream of events. These events implement descendants of EventInterface
. Such events can be emitted by any custom JSON parser, but this library also implements standard ValueWalker
object that converts any NodeValueInterface
to event stream.
Value walker is also able to use mutations to alter the events. There're no standard mutations, you must implement MutationInterface
by yourself.
You can also use EventDecoder
object to convert event stream back to NodeValueInterface
.
Value exporters
Library includes a set of ValueExporterInterface
implementations that allow to export ValueInterface
to another representation:
ValueEncoder
converts value to JSON-encoded string.ValueDecoder
converts value to raw PHP values.
Comparators
Library includes a set of ComparatorInterface
implementations that provide a simple way to compare/sort JSON documents:
EqualValueComparator
checks for JSON documents equality. Note that objects with same properties in different order are considered equal.GreaterValueComparator
compares JSON numbers and strings.ContainsValueComparator
checks JSON documents either for equality or for containment. Containing object is allowed to have additional properties on any level of recursion.
License
This library is licensed under the MIT License. Please see LICENSE for more information.
All versions of php-json-data with dependencies
ext-json Version *
ext-intl Version *