The json_pp
utility prints JSON data in a legible, indented format. It provides the most
benefit to people who need to read, inspect, and understand JSON data structures that are not already provided with
separating white space, such as software developers building or consuming JSON-based APIs.
By default, json_pp
does not escape slashes or multi-byte Unicode characters. These characters may be escaped by
overriding the default encode options with a configuration file. Pretty-printing may be similarly disabled when compact
JSON is needed and the source JSON is already formatted with white space.
- PHP 5.5.0 or later must be available at the command line in order to run
json_pp
. Users of older versions of PHP should seriously consider upgrading. PHP 7 or later is required to run the test suite. - Composer is used for automating installation, and it is also possible to manually download and install this package.
To make json_pp
available to all system users, which may require system administrator (e.g., root) privileges:
composer global install deftek/json_pp
To make json_pp
available only for the current system user:
composer install deftek/json_pp
To include json_pp
in a project that uses Composer:
composer require deftek/json_pp
To include json_pp
for development purposes in a project that uses Composer:
composer require --dev deftek/json_pp
echo '{"foo":{"bar":"baz"}}' | json_pp
Output:
{
"foo": {
"bar": "baz"
}
}
json_pp < compact.json
echo pretty.json | json_pp --config=config.compact.php
Where config.compact.php
contains something like:
<?php
return [
'decode' => 0,
'depth' => 512,
'encode' => JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE,
];
See config.default.php
for the default configuration values, and override the values in your own configuration files
as needed.
The configuration file contains three options that are used for controlling arguments to the
json_decode()
and json_encode()
function calls:
decode
: This value represents theoptions
argument forjson_decode()
.depth
: This value represents thedepth
argument for bothjson_decode()
andjson_encode()
.encode
: This value represents theoptions
argument forjson_encode()
.
The json_pp
package is provided under the 3-Clause (aka New or Modified) BSD License. Complete copyright and license
information is available in LICENSE.txt.
Issues may be reported and contributions may be accepted within the contribution guidelines.
Notable changes to json_pp
are documented in the change log.