Php – Pretty-Printing JSON with PHP


I'm building a PHP script that feeds JSON data to another script. My script builds data into a large associative array, and then outputs the data using json_encode. Here is an example script:

$data = array('a' => 'apple', 'b' => 'banana', 'c' => 'catnip');
header('Content-type: text/javascript');
echo json_encode($data);

The above code yields the following output:


This is great if you have a small amount of data, but I'd prefer something along these lines:

    "a": "apple",
    "b": "banana",
    "c": "catnip"

Is there a way to do this in PHP without an ugly hack? It seems like someone at Facebook figured it out.

Best Solution

PHP 5.4 offers the JSON_PRETTY_PRINT option for use with the json_encode() call.

$json_string = json_encode($data, JSON_PRETTY_PRINT);