PHP“ pretty print”json_encode

可能的复制品:
用 PHP 漂亮地打印 JSON

我正在编写一个创建 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 括号也一样,有什么想法吗?

190229 次浏览

$array = json_decode($json, true);将使您的字符串一个数组,这是很容易打印很好与 print_r($array, true);

但如果你真的想美化你的儿子... 看看这个

这里有一个函数可以让你的 json 更漂亮: 漂亮的 Json

从5.4.0(发布日期01-2012年3月)开始,PHP 就有了 JSON _ PRETTY _ PRINT 选项。

这应该可以起作用:

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

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

注意: 如果要用 HTML 格式打印,请不要忘记回显“ < pre >”之前和“ ”之后的内容;)