PHP需输出JSON并设正确header,小程序用wx.request请求并解析,封装Promise提升复用性,PHP端规范键名、过滤空值,小程序端安全遍历多维数组。
如果您在小程序中需要接收并处理 PHP 后端输出的数组数据,则需确保 PHP 正确返回结构化数据,且小程序能正确发起请求、解析响应。以下是实现该目标的具体方法:
PHP 数组无法被小程序直接识别,必须转换为标准 JSON 字符串,并设置正确的 HTTP 响应头,以保证小程序能正确解析为 JavaScript 对象。
1、在 PHP 文件开头添加 header('Content-Type: application/json; charset=utf-8');
2、将 PHP 关联数组或索引数组使用 json_encode($array, JSON_UNESCAPED_UNICODE) 转换为 JSON 字符串
3、调用 exit(json_encode(...)); 或 echo json_encode(...); 输出结果,避免额外空格或 HTML 内容混入
wx.request 默认将响应数据作为字符串返回,需确保 responseType 为 'text'(默认),并在 success 回调中对 data 进行 JSON 解析,或直接依赖服务器返回的 Content-Type 触发自动解析。
1、在 wx.request 的 success 回调中,检查 res.data 是否为对象类型;若为字符串,需手动执行 JSON.parse(res.data)
2、添加 try-catch 包裹解析逻辑,捕获 SyntaxError 异常,防止非法 JSON 导致程序中断
3、确认 res.statusCode === 200 且 res.data 不为空,再进行后续数组遍历或字段提取
为提升可维护性与复用性,可将 wx.request 封装为 Promise,并在 resolve 前完成 JSON 解析与基础校验,使业务层直接获取已解析的数组或对象。
1、定义函数 requestArray(url, data = {}),内部调用 wx.request
2、在 success 中判断 typeof res.data === 'string',是则执行 JSON.parse,否则直接返回 res.data
3、对解析结果进行类型断言:若期望返回数组,检查 Array.isArray(parsedData),不满足则 reject 错误
小程序侧 JavaScript 对象属性名区分大小写且不支持短横线、空格等字符,PHP 数组键名若含此类符号会导致解析后字段丢失或访问异常。
1、PHP 中使用 array_change_key_case($array, CASE_LOWER) 统一转换为小写键名
2、使用 preg_replace('/[^a-z0-9_]/', '_', $key) 替换非法字符,确保键名符合 JS 标识符规范
3、在输出前调用 array_filter($array, function($v) { return $v !== null && $v !== ''; }) 剔除空值干扰项
当 PHP 返回嵌套数组(如二维列表或带子数组的对象)时,直接使用 for...in 或 forEach 可能因 undefined 或非数组类型引发运行时错误,需逐层校验。
1、访问前使用 Array.isArray(data.list) 判断外层数组是否存在且为数组类型
2、遍历时对每一项使用 item && typeof item === 'object' && item !== null 确保可安全取属性
3、对可能缺失的字段采用可选链操作符(item?.name || '未知')或逻辑运算符提供默认值
# php
# javascript
# java
# html
# js
# json
# app
# 小程序
# 后端
相关文章:
XML的“混合内容”是什么 怎么用DTD或XSD定义
贸易公司网站制作流程,出口贸易网站设计怎么做?
潮流网站制作头像软件下载,适合母子的网名有哪些?
如何通过WDCP绑定主域名及创建子域名站点?
制作网站公司那家好,网络公司是做什么的?
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
建站之星备案是否影响网站上线时间?
,交易猫的商品怎么发布到网站上去?
表情包在线制作网站免费,表情包怎么弄?
如何制作算命网站,怎么注册算命网站?
定制建站价位费用解析与套餐推荐全攻略
如何高效搭建专业期货交易平台网站?
建站VPS配置与SEO优化指南:关键词排名提升策略
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
高配服务器限时抢购:企业级配置与回收服务一站式优惠方案
电商平台网站制作流程,电商网站如何制作?
小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化
黑客如何利用漏洞与弱口令入侵网站服务器?
c++ stringstream用法详解_c++字符串与数字转换利器
如何撰写建站申请书?关键要点有哪些?
如何用腾讯建站主机快速创建免费网站?
济南企业网站制作公司,济南社保单位网上缴费步骤?
建站之星如何通过成品分离优化网站效率?
如何构建满足综合性能需求的优质建站方案?
制作电商网页,电商供应链怎么做?
如何通过商城自助建站源码实现零基础高效建站?
如何快速查询网站的真实建站时间?
常州企业建站如何选择最佳模板?
免费公司网站制作软件,如何申请免费主页空间做自己的网站?
建站之星代理如何优化在线客服效率?
魔方云NAT建站如何实现端口转发?
如何在服务器上三步完成建站并提升流量?
如何基于PHP生成高效IDC网络公司建站源码?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
html制作网站的步骤有哪些,iapp如何添加网页?
如何在阿里云通过域名搭建网站?
ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?
php json中文编码为null的解决办法
如何彻底卸载建站之星软件?
建站之星安装步骤有哪些常见问题?
如何选择美橙互联多站合一建站方案?
金*站制作公司有哪些,金华教育集团官网?
详解jQuery中基本的动画方法
如何快速打造个性化非模板自助建站?
建站之星在线客服如何快速接入解答?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
如何快速选择适合个人网站的云服务器配置?
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
h5网站制作工具有哪些,h5页面制作工具有哪些?
*请认真填写需求信息,我们会在24小时内与您取得联系。