一尘不染

PHP“漂亮打印” json_encode

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替换每个逗号,括号也一样。。。


阅读 276

收藏
2020-07-27

共1个答案

一尘不染

自5.4.0起(发布日期为2012年3月1日),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>”和在其后显“ </ pre>”;)

2020-07-27