germania-kg/jsondecoder

Decode JSON in strings and PSR-7 messages. Supports JsonException on older PHP

1.2.0 2023-01-04 08:10 UTC

This package is auto-updated.

Last update: 2024-04-19 22:52:55 UTC


README

68747470733a2f2f7374617469632e6765726d616e69612d6b672e636f6d2f6c6f676f732f67612d6c6f676f2d323031362d7765622e7376677a

JsonDecoder

Decode JSON in strings and PSR-7 messages. Supports JsonException on older PHP.

Packagist PHP version Tests

Installation with Composer

$ composer require germania-kg/jsondecoder

Usage

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();
}

Exceptions

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.

Issues

See full issues list.

Development

$ git clone https://github.com/GermaniaKG/JsonDecoder.git
$ cd JsonDecoder
$ composer install

Unit tests

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