- Tracking of parsing progress
- Custom decoder
- PHP 8 support (thanks @snapshotpl)
ext-json
is not required incomposer.json
anymore, because custom decoder might not need it. However built-in decoders depend on it so it must be present if you use them.- All exceptions now extend
JsonMachineException
(thanks @gabimem) - Throws
UnexpectedEndSyntaxErrorException
on an unexpected end of JSON structure (thanks @gabimem) - Function
httpClientChunks()
is deprecated so that compatibility with Symfony HttpClient is not on the shoulders of JSON Machine maintainer. The code is simple and everyone can make their own function and maintain it. The code was moved to examples. - Function
objects()
is deprecated. The wayobjects()
works is that it casts decoded arrays to objects. It brings some unnecessary overhead and risks on huge datasets. Alternative is to useExtJsonDecoder
which decodes items as objects by default (same asjson_decode
).
<?php
use JsonMachine\JsonDecoder\ExtJsonDecoder;
use JsonMachine\JsonMachine;
$jsonMachine = JsonMachine::fromFile('path/to.json', '', new ExtJsonDecoder);
Therefore no additional casting is required.
- Invalid json object keys will now throw and won't be ignored anymore.
- Decoding of json object keys checks for errors and does not silently ignore them.