PHP "pretty print" json_encode

Возможный дубликат:
Pretty-Printing JSON с PHP

Я работаю над скриптом, который создает файл JSON. Прямо сейчас я использую json_encode (PHP 5.2.x) для кодирования массива в JSON-выход. Затем я печатаю возвращаемое значение в файл и сохраняю его. Проблема в том, что клиент хочет открыть эти JSON-файлы для удобочитаемости, поэтому я хотел бы добавить разрывы строк и «довольно печатать» вывод JSON. Есть идеи, как это сделать? Моя единственная альтернатива, которую я вижу, – вообще не использовать json_encode и просто писать содержимое файла вручную и добавлять в свои строки разрывы для каждой строки.

Вот что я получаю:

 {"product_name":"prod1","val1":1,"val2":8} 

Вот что я хочу:

 { "product_name":"prod1", "val1":1, "val2":8 } 

Я полагаю, что я мог бы просто заменить каждую запятую командой, за которой следует \ n, и тем же самым для скобок … Мысли?

Solutions Collecting From Web of "PHP "pretty print" json_encode"

PHP имеет параметр JSON_PRETTY_PRINT с 5.4.0 (дата выпуска 01-март-2012).

Это должно сделать работу:

 $json = json_decode($string); echo json_encode($json, JSON_PRETTY_PRINT); 

См. http://www.php.net/manual/en/function.json-encode.php

Примечание. Не забудьте повторить «<pre>» до и </ pre> после, если вы печатаете его в HTML;)

Hmmm $array = json_decode($json, true); сделает вашу строку массив, который легко печатать с помощью print_r($array, true);

Но если вы действительно хотите превзойти своего json … Проверьте это

Вот функция для вашего json: pretty_json

А для PHP 5.3 вы можете использовать эту функцию, которая может быть встроена в класс или использована в процедурном стиле:

http://svn.kd2.org/svn/misc/libs/tools/json_readable_encode.php