PHP接口返回数组需用json_encode转JSON并设Content-Type: application/json;处理中文用JSON_UNESCAPED_UNICODE;统一封装response函数;异常时也返回标准JSON格式。

如果您的PHP接口需要将数组数据返回给前端,必须确保数据以标准JSON格式输出,并正确设置HTTP响应头。以下是实现此目标的具体步骤:
一、使用json_encode函数转换数组
PHP中需调用json_encode()函数将关联数组或索引数组序列化为JSON字符串。该函数会自动处理字符串转义、Unicode编码及嵌套结构,是生成合法JSON的必要环节。
1、定义一个包含键值对的关联数组,例如:$data = ['code' => 200, 'message' => 'success', 'data' => ['id' => 1, 'name' => 'test']];
2、调用json_encode($data)将数组转为JSON字符串。
立即学习“PHP免费学习笔记(深入)”;
3、检查返回值是否为false,若为false说明数组中存在不可序列化的数据类型(如资源、闭包)。
二、设置正确的Content-Type响应头
浏览器或客户端依赖Content-Type头识别响应体格式。若未声明为application/json,前端可能无法自动解析为JavaScript对象,导致解析失败或触发下载行为。
1、在输出JSON前,调用header('Content-Type: application/json; charset=utf-8');。
2、确保该header语句在任何输出(包括空格、BOM、echo/print)之前执行,否则会报“headers already sent”错误。
3、可附加charset=utf-8参数,避免中文等非ASCII字符出现乱码。
三、处理中文乱码与Unicode转义
默认情况下,json_encode会对中文字符进行\uXXXX形式的Unicode转义,影响可读性。启用JSON_UNESCAPED_UNICODE选项可保留原始中文字符,提升调试效率和接口友好性。
1、在json_encode调用中加入第二个参数:json_encode($data, JSON_UNESCAPED_UNICODE)。
标签: php javascript java js 前端 json 编码 浏览器 app 后端 中文乱码 状态码 键值对
还木有评论哦,快来抢沙发吧~