PHP“漂亮的打印”json_encode

时间:2011-08-17 18:06:22

标签: php json encode

  

可能重复:
  Pretty-Printing JSON with 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来替换每个逗号,并用括号替换...思想?

4 个答案:

答案 0 :(得分:306)

PHP自5.4.0(发布日期为2012年3月1日)起有JSON_PRETTY_PRINT选项。

这应该做的工作:

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

请参阅http://www.php.net/manual/en/function.json-encode.php

注意:不要忘记回复“< pre>”之前和“< / pre>”之后,如果您在HTML中打印它以保留格式;)

答案 1 :(得分:11)

$array = json_decode($json, true);会使您的字符串成为一个易于使用print_r($array, true);

打印的数组

但如果你真的想要美化你的json ...... Check this out

答案 2 :(得分:4)

这是一个让你的json充满活力的功能: pretty_json

答案 3 :(得分:3)

对于PHP 5.3,您可以使用此函数,该函数可以嵌入到类中或以过程样式使用:

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