Beautifying PHP’s json_encode() output

I’ve been working a bit more with PHP and JSON recently and one of the things that annoyed me quite a bit was the single line output of the json_encode() function.  Here is an example:

<?php
$data = array(
'foo' => 'bar',
'bar' => 'qux',
'blah' => 'blah',
);

echo json_encode($data);
?>

Poorly readable result (imagine having larger, more complex data structures like nested arrays):

{"foo":"bar","bar":"qux","blah":"blah"}

Apparently, since PHP 5.4.0 it became much easier to optionally format the output with some indentation.  json_encode() function has an $options parameter, which was given an extra option – JSON_PRETTY_PRINT.  Here is an updated example:

<?php
$data = array(
 'foo' => 'bar',
 'bar' => 'qux',
 'blah' => 'blah',
);

echo json_encode($data, JSON_PRETTY_PRINT);
?>

And an updated output:

{
 "foo": "bar",
 "bar": "qux",
 "blah": "blah"
}

Very handy for debugging and for those bits of JSON that should be editable by hand.

2 thoughts on “Beautifying PHP’s json_encode() output”

Leave a Comment