在写一个API接口的时候,使用 json 数据返给前端使用..PHP使用时json_encode函数
<?php $arr = [ '汉字' => '这是一段汉字', 'en' => 'this is en', '1' => 12345689, 'arr' => [ 'key' => 'value', ], ]; echo json_encode($arr);
输出之后是这样的.
这种并不是标准的 JSON,因为你没告诉浏览器这是 JSON 数据,浏览器默认以 html 输出了.那么我们加上.
<?php
// 告诉浏览器我是 JSON
header('content-type:application/json;charset=utf-8');
$arr = [
'汉字' => '这是一段汉字',
'en' => 'this is en',
'1' => 12345689,
'arr' => [
'key' => 'value',
],
];
echo json_encode($arr);
中文汉字会被编码.也不是很好看. 
在这里我们使用:JSON_UNESCAPED_UNICODE和JSON_PRETTY_PRINT
如:
<?php
// 告诉浏览器我是 JSON
header('content-type:application/json;charset=utf-8');
$arr = [
'汉字' => '这是一段汉字',
'en' => 'this is en',
'1' => 12345689,
'arr' => [
'key' => 'value',
// 在这我加一个网址
'url'=>'https://blog.kieng.cn/',
],
];
echo json_encode($arr);
好看了吧?
但是又发现 / 会被自动变为\/,咋办呢?我们使用stripslashes删除反斜线函数
<?php
// 告诉浏览器我是 JSON
header('content-type:application/json;charset=utf-8');
$arr = [
'汉字' => '这是一段汉字',
'en' => 'this is en',
'1' => 12345689,
'arr' => [
'key' => 'value',
// 在这我加一个网址
'url' => 'https://blog.kieng.cn/',
],
];
echo stripslashes(json_encode($arr, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
function jsonm($data) {
header('content-type:application/json;charset=utf-8');
return stripslashes(json_encode($data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
}
jsonm(['code'=>1,'msg'=>'OJ8K']);

![[PHP]JSON数据美化](/api/qr/qr.png?url=https://blog.kieng.cn/1360.html)
![[PHP]JSON 数据美化 [PHP]JSON 数据美化](https://blog.kieng.cn/wp-content/uploads/2019/08/2019082001425599.png)
![[PHP]JSON 数据美化 [PHP]JSON 数据美化](https://blog.kieng.cn/wp-content/uploads/2019/08/20190820013416100.png)
![[PHP]JSON 数据美化 [PHP]JSON 数据美化](https://blog.kieng.cn/wp-content/uploads/2019/08/2019082001360563.png)
![[PHP]JSON 数据美化 [PHP]JSON 数据美化](https://blog.kieng.cn/wp-content/uploads/2019/08/2019082001390022.png)
![[PHP]JSON 数据美化 [PHP]JSON 数据美化](https://blog.kieng.cn/wp-content/uploads/2019/08/2019082001402658.png)





