我正在开发一个创建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来替换每个逗号,并用括号替换...思想?
答案 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