Json is a collection of static methods to simplify working with JSON in PHP.
- encode to JSON string with error handling
- decode from a string or file path containing valid JSON with error handling
- validate a JSON document against a JSON Schema
- pretty print a JSON string
NOTE:
The json-schema library version used here is currently a fork so you need to add the following to your composer.json file.
"repositories": [
{
"type": "vcs",
"url": "http://github.com/hglattergotz/json-schema"
}
],
- JsonPretty A Json pretty printer by Cam Spiers
- JsonSchema A Json Schema validation library by Justin Rainbow
<?php
$data = array(
'field' => 'value'
);
$jsonString = Json::encode($data);
Decode the contents of $jsonString as an associative array.
<?php
$data = Json::decode($jsonString, true);
Decode the contents of the file at $path as an associative array.
<?php
$data = Json::decode($path, true);
Note that the source can either be a JSON string or an array. The call below uses the default indentation of 2 spaces. To use a different indentation pass it as the second parameter.
<?php
$prettyJson = Json::prettyPrint($data);
Instead of having to call json_last_error()
and evaluating the integer
response code the decode and encode methods throw an exception that contain
the message as well as the code.
<?php
$invalidJson = '{';
try {
$data = Json::decode($invalidJson);
} catch (HGG\Json\Exception\RuntimeException $e) {
printf("Error message: %s\n", $e->getMessage());
printf("Error code: %d\n", $e->getCode());
}
The code above example will output:
Error message: JSON Error - Syntax error, malformed JSON
Error code: 4