PHP“;“漂亮的印刷品”;json_编码

PHP“;“漂亮的印刷品”;json_编码,php,json,encode,Php,Json,Encode,可能重复: 我正在编写一个创建JSON文件的脚本。现在我只是使用json\u encode(PHP5.2.x)将数组编码到json输出中。然后我将返回的值打印到一个文件并保存它。问题是,客户机希望能够打开这些JSON文件以提高可读性,所以我想添加换行符并“漂亮地打印”JSON输出。有什么办法吗?我能看到的唯一其他选择是根本不使用json_encode,只需手动写入文件内容,并为每一行添加我自己的换行符 以下是我得到的: {"product_name":"prod1","val1":1,"val

可能重复:

我正在编写一个创建JSON文件的脚本。现在我只是使用
json\u encode
(PHP5.2.x)将数组编码到json输出中。然后我将返回的值打印到一个文件并保存它。问题是,客户机希望能够打开这些JSON文件以提高可读性,所以我想添加换行符并“漂亮地打印”JSON输出。有什么办法吗?我能看到的唯一其他选择是根本不使用
json_encode
,只需手动写入文件内容,并为每一行添加我自己的换行符

以下是我得到的:

{"product_name":"prod1","val1":1,"val2":8}
以下是我想要的:

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

我想我也可以用一个后跟一个\n的命令替换每个逗号,括号也是一样。。。想法?

Hmmm
$array=json\u decode($json,true)
将使您的字符串成为一个数组,使用
print\r($array,true)可以轻松打印


但是如果你真的想美化你的json

这里有一个函数可以优化json:

PHP自5.4.0版(发布日期2012年3月1日)起就有JSON_PRETTY_打印选项

这应该可以做到:

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


注意:如果要用HTML打印以保留格式,请不要忘记在“之前”和“之后”回显“;)

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


参见。$jsonArr='{“产品名称”:“产品1”,“产品1”:1,“产品2”:8}”$jsonArr=json_decode($jsonArr);回声“;印刷品(jsonArr)@Michael Mior你应该看到我的调试die
die(print(''.print\r($var,true)。'')
它几乎可以打印任何东西:pI通常只需查看源代码并使用
var\u dump
,但任何有效的:)都可以完美地复制并粘贴到我的php文件中,尤其是因为我不想在我的mac上完成所有升级到PHP5.4的工作。谢谢。只是想知道如何
brew安装php54
被认为是一项艰巨的工作。在Mac上进行开发时,很可能安装了自制软件……在PHP中@NicCottrell不起作用,当我在这里测试它时@drzaus在那里为我工作-我可以在单独的行上看到JSON的每个键(该网站上使用的PHP版本甚至定义了JSON_PRETTY_PRINT。@beret啊,我认为共享它会保留PHP设置——将PHP版本更改为任何小于5.4的版本,它应该返回到“未格式化”状态。感谢您提供的
JSON
提示!只需使用@Nic Cottrell评论的128即可。