JSON_PRETTY_PRINT是PHP 5.4.0+的常量,使json_encode()输出带缩进和换行的格式化JSON,便于阅读调试,可与其他JSON标志如JSON_UNESCAPED_UNICODE组合使用,需配合header或<pre>标签确保浏览器正确显示。

PHP 的 JSON_PRETTY_PRINT 是一个常量,用于让 json_encode() 输出格式化(带缩进和换行)的 JSON 字符串,方便阅读和调试,而不是默认的一行紧凑格式。
基本用法:传入第2个参数
直接将 JSON_PRETTY_PRINT 作为第二个参数传给 json_encode():
$data = ['name' => '张三', 'scores' => [85, 92, 78]];<br>echo json_encode($data, JSON_PRETTY_PRINT);
输出效果(带缩进和换行):
立即学习“PHP免费学习笔记(深入)”;
{<br> "name": "张三",<br> "scores": [<br> 85,<br> 92,<br> 78<br> ]<br>}
可与其他 JSON 常量组合使用
它常和其它 flag 一起用,用按位或 | 连接:
-
JSON_UNESCAPED_UNICODE:保留中文等 Unicode 字符,不转成\uXXXX -
JSON_UNESCAPED_SLASHES:不转义斜杠/ -
JSON_NUMERIC_CHECK:自动把数字字符串转为数字类型(如"123"→123)
示例:json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
注意输出内容类型和浏览器显示
如果在网页中直接输出,浏览器可能把换行缩进当空白忽略,导致看起来没变化:
- 加
header('Content-Type: application/json');强制以 JSON 类型响应 - 或用
<pre><code>...</code></pre>包裹输出,保留格式 - 调试时推荐用
var_dump()或开发者工具的 Network 面板查看原始响应
不支持 PHP 5.3 以下版本
JSON_PRETTY_PRINT 自 PHP 5.4.0 起引入。如果你用的是旧版本:
- 升级 PHP 是最稳妥的方案
- 临时替代:用第三方库(如
Services_JSON)或手动格式化(不推荐,易出错)



















