PHP“漂亮打印”json_encode

2022-08-30 06:44:30

可能的重复:
使用PHP打印JSON

我正在编写一个创建 JSON 文件的脚本。现在我只是使用(PHP 5.2.x)将数组编码为JSON输出。然后,我将返回的值打印到文件中并保存。问题是客户端希望能够打开这些JSON文件以提高可读性,因此我想添加换行符并“漂亮地打印”JSON输出。关于如何做到这一点的任何想法?我能看到的唯一另一种选择是根本不使用,只需手动写入文件内容并为每行添加我自己的换行符。json_encodejson_encode

这是我得到的:

{"product_name":"prod1","val1":1,"val2":8}

这是我想要的:

{
  "product_name":"prod1",
  "val1":1,
  "val2":8
}

我想我也可以用一个命令替换每个逗号,后跟一个\n,括号也是如此......思潮?


答案 1

PHP自5.4.0(发布日期01-Mar-2012)以来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>”,请稍后回显“</pre>”,以保留格式;)


答案 2

嗯,这将使你的字符串成为一个易于打印的数组$array = json_decode($json, true);print_r($array, true);

但是,如果您真的想美化您的json...看看这个


推荐