Phoootwork collection
Phootwork json library.
- Wrap native PHP functions with classes
- Provide solid error handling with exceptions
Installation
Installation via composer:
composer require phootwork/json
Decode
The Json::decode() works almost similarly to php's json_decode() except it always returns an array instead of an object.
Synopsis
array Json::decode(string $json [, int $options = 0 [, int $depth = 512]])
Simple Decoding
Decoding is straight forward:
<?php declare(strict_types=1);
use phootwork\json\Json;
$json = '...';
$array = Json::decode($json);
Note: Unlike php, this library returns decoded JSON as array!
Decode to Collection
The json package works in harmony with Collections. You can decode json into any collection easily.
<?php declare(strict_types=1);
use phootwork\json\Json;
$json = '...';
$array = Json::toCollection($json);
The collection parser will detect what kind of collection type (Map or
ArrayList) the provided json is and will return the matching type of
collection. If you know what kind of collection to expect you can call
Json::toMap() or Json::toList() directly.
Encode
The Json::encode() function works almost similarly to php's json_encode(),
except there is proper error handling built in.
Synopsis
string Json::encode(mixed $data [, int $options = 0 [, int $depth = 512]])
Simple Encoding
Encoding data into json is done straight forward:
<?php declare(strict_types=1);
use phootwork\json\Json;
$data = [...];
$json = Json::encode($data);
Encode with Options
You can also pass options as second parameter:
<?php declare(strict_types=1);
use phootwork\json\Json;
$data = [...];
$json = Json::encode($data, Json::PRETTY_PRINT | Json::UNESCAPED_SLASHES);
Error Handling
Error handling with native php functions is a bit ... well... "old". For that reason every call to Json::* will throw an exception. Let's see an example for that:
<?php declare(strict_types=1);
use phootwork\json\Json;
use phootwork\json\JsonException;
try {
$json = '...';
$array = Json::decode($json);
} catch (JsonException $e) {
echo $e->getMessage();
}