Возможный дубликат:
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, и тем же самым для скобок … Мысли?
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