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

在进行接口调试或接口说明时,常常需要把接口返回的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;

此时的页面输出效果:
在这里插入图片描述

格式化输出

有两个要点:

  • 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>';

最终页面输出效果:
在这里插入图片描述

©️2020 CSDN 皮肤主题: 鲸 设计师:meimeiellie 返回首页