欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

PHP - 在网页里格式化输出(打印)JSON字符串

程序员文章站 2024-01-13 11:42:40
...

在进行接口调试或接口说明时,常常需要把接口返回的JSON数据以一种友好、易读的方式进行展现。
下面介绍一种在网页里格式化输出(打印)JSON字符串的简单方式。

原始字符串

原始字符串需要符合JSON要求的标准格式,可以包含中文,如:

//原始字符串,JSON格式
$origin_str = '{"code":200,"data":[{"color":"red","name":"红色","rgb":"ff0000"}, {"color":"green","name":"绿色","rgb":"00ff00"},{"color":"blue","name":"蓝色","rgb":"0000ff"}]}';

对原始字符串重新进行编解码

分别使用 json_decode()json_encode() 方法对原始字符串进行一次解码和编码操作,重新生成JSON字符串。
表面上看,重新生成的字符串和原始字符串没有什么不同,但如果跳过直接进行下一步,无法得到最终的格式化输出效果。

//对原始字符串进行解码,转换为PHP对象或数组
$json_obj = json_decode($origin_str);

//对PHP对象或数组重新进行JSON编码,生成新的字符串
//默认情况下,字符串中的中文会进行Unicode编码
$json_str = json_encode($json_obj);

echo $json_str;

此时的页面输出效果:
PHP - 在网页里格式化输出(打印)JSON字符串

格式化输出

有两个要点:

  • json_encode() 增加 JSON_UNESCAPED_UNICODEJSON_PRETTY_PRINT 两个配置参数
  • 把打印内容放在 <pre> 标签中

最终代码如下:

//原始字符串,JSON格式
$origin_str = '{"code":200,"data":[{"color":"red","name":"红色","rgb":"ff0000"},{"color":"green","name":"绿色","rgb":"00ff00"},{"color":"blue","name":"蓝色","rgb":"0000ff"}]}';

//对原始字符串进行解码,转换为PHP对象或数组
$json_obj = json_decode($origin_str);

//对PHP对象或数组重新进行JSON编码,生成新的字符串
//默认情况下,字符串中的中文会进行Unicode编码
//多个配置参数之间,用竖线分隔
$json_str = json_encode($json_obj, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);

//页面输出
echo '<pre>';
echo $json_str;
echo '</pre>';

最终页面输出效果:
PHP - 在网页里格式化输出(打印)JSON字符串