Pretty-Printing JSON с PHP - PullRequest
       74

Pretty-Printing JSON с PHP

523 голосов
/ 19 мая 2011

Я создаю скрипт PHP, который передает данные JSON в другой скрипт.Мой скрипт строит данные в большой ассоциативный массив, а затем выводит данные, используя json_encode.Вот пример сценария:

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

Приведенный выше код дает следующий вывод:

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

Это здорово, если у вас небольшой объем данных, но я бы предпочелпо этим направлениям:

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

Есть ли способ сделать это в PHP без отвратительного взлома?Кажется, кто-то в Facebook понял это.

Ответы [ 21 ]

0 голосов
/ 24 сентября 2013

Вот что у меня сработало:

Содержимое test.php:

<code><html>
<body>
Testing JSON array output
  <pre>
  <?php
  $data = array('a'=>'apple', 'b'=>'banana', 'c'=>'catnip');
  // encode in json format 
  $data = json_encode($data);

  // json as single line
  echo "</br>Json as single line </br>";
  echo $data;
  // json as an array, formatted nicely
  echo "</br>Json as multiline array </br>";
  print_r(json_decode($data, true));
  ?>
  

выход: * +1010 *

Testing JSON array output


Json as single line 
{"a":"apple","b":"banana","c":"catnip"}
Json as multiline array 
Array
(
    [a] => apple
    [b] => banana
    [c] => catnip
)

Также обратите внимание на использование тега «pre» в html.

Надеюсь, что кому-то поможет

...