PHP"漂亮的打印"json_encode

Bri*_*ian 136 php json encode

可能重复:
使用PHP进行漂亮的JSON打印

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

这是我得到的:

{"product_name":"prod1","val1":1,"val2":8}
Run Code Online (Sandbox Code Playgroud)

这就是我想要的:

{
  "product_name":"prod1",
  "val1":1,
  "val2":8
}
Run Code Online (Sandbox Code Playgroud)

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

pet*_*tek 319

自5.4.0(发布日期01-Mar-2012)以来,PHP具有JSON_PRETTY_PRINT选项.

这应该做的工作:

$json = json_decode($string);
echo json_encode($json, JSON_PRETTY_PRINT);
Run Code Online (Sandbox Code Playgroud)

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

注意:如果您在HTML中打印它以保留格式,请不要忘记在之前回显"<pre>"和"</ pre>"之后;)

  • 在PHP <5.4中,用128替换`JSON_PRETTY_PRINT` (14认同)
  • 谢谢你的'<pre> json </ pre>`提示! (6认同)
  • @NicCottrell在我测试时不起作用http://sandbox.onlinephpfunctions.com/code/99ef7015efd0e31a06bd3d0d1130f7b9ace9e7a4 (2认同)

sg3*_*g3s 11

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

但是,如果你真的想要美化你的json ...... 请看看


Cam*_*los 5

这是一个装饰您的json的函数: pretty_json