Decode JSON in strings and PSR-7 messages. Supports JsonException on older PHP.
$ composer require germania-kg/jsondecoder
The callable JsonDecoder accepts the same parameters than described in PHP's documentation on json_decode. Additionally, it accepts some widely-used kinds of data:
Psr\Http\Message\MessageInterface
Psr\Http\Message\ResponseInterface
Psr\Http\Message\StreamInterface
string
use Germania\JsonDecoder\JsonDecoder;
// Let:
// $response instance of ResponseInterface,
// $body instance of StreamInterface
$body = $response->getBody();
$str = $body->__toString();
try {
$decoder = new JsonDecoder;
$decoded = $decoder( $response );
$decoded = $decoder( $body );
$decoded = $decoder( $str );
}
catch ( \JsonException $e)
{
echo $e->getMessage();
}
When the decoding fails, a \JsonException (mind the global namespace!) will be thrown. This class is provided by Symfony's Polyfill PHP 7.3 for those lacking PHP 7.3.
$ git clone https://github.com/GermaniaKG/JsonDecoder.git
$ cd JsonDecoder
$ composer install
Either copy phpunit.xml.dist
to phpunit.xml
and adapt to your needs, or leave as is. Run PhpUnit test or composer scripts like this:
$ composer test
# or
$ vendor/bin/phpunit