


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
php下的json字符串转化讲解:解析为空
今天想利用利用jQuery的ajax和服务器语言php进行交互练习瀑布流,结果在交互过
程中,不知哪一步使得php获取的字符串存在,可转为数组却是空,我天,这足足浪费我三
个小时找这个bug,把每一个字符进行了一一比对,发现竟然语法都没错!!!砐后的坑竞
然在BOM头,好啦,把心情回归平静,把出现的问题,尝试的方法进行总结一下:
在本文中,豹sonStr代表php获取到的json字符串,$jsonArr代表php的jsondecode()
转化后的数组
1首先php中的json_decocle要求的字符串比较严格,以下几点怖注意:
(1)使用UTF-8编码
(2)不能在娘后元素有逗号
(3)不能使用单引号
(4)不能有\r,\t,如果有请替换
可以在https://\吓./上在线查询json格式正确与否
2.如果上述几点你都做到了,但是json_decode()的结果依然为空,尝试
1$jsonStr=preg_replace('/[\x00-\xlF\x80-\x9F]/u','',trim($jsonStr));
以去掉其他破坏json字符串的字符。
3.可能因为在json字符串中反斜杠被转义,只衙要用htmlspecialcharsdecode()
函数处理一下:
1$jsonStr=htmlspecialchars_decode($jsonStr);
然后再使用json_decode()函数解析得到$jsonArr
4.编码问题,尝试如下方法进行转码:
(l)在保存json数据时使用urlencode()涵数:
1$jsonStr=urlencode(json_encode($jsonStr));
解析时使用urldecode()函数:
1$jsonStr=urldecode($jsonStr);
(2)
1$jsonStr=stripslashes(html_entity_decode($jsonStr);
2$jsonArr=json_decode($jsonStr,TRUE);
html_entity_decodeOEfl数的作用是把HTML实体转换为字符。
5.在转为json之前对中文进行转码
lfunctionarrayRecursive(&$array,$function,$apply_to_keys_also=false)
2{
3static$recursive_counter=0;
4if(++$recursive_counter>1000){
5die('possibledeeprecursionattack');
6}
7foreach($arrayas$key=>$value){
8if(is_array($value)){
9arrayRecursive($array[$key],$function,
10$apply_to_keys_also);
11}else{
12$array[$key]=$function($value);
13}
14if($apply_to_keys_also&&is_string($key)){
15$new_key=$function($key);
16if($new_key!=$key){
17$array[$new_key]=$array[$key];
18unset($array[$key]);
19}
20}
21}
22$recursivecounter--:
23}
24/**************************************************************
25*
26*将数组转换为JSON字符串(兼容中文)
27*@paramarray$array要转换的数组
28*@returnstring转换得到的json字符串
29*@accesspublic
30*
31*************************************************************/
32functionJSON($array)
33{
34arrayRecursive($array,'urlencode',true);
35$json=json_encode($array);
36returnurldecode($json);
37}
echoJSON($jsonStr);
6.尝试在json_decode()的第二个参数中添加true
1$jsonArr=json_decode($json5tr,true)
7.也是我在交互中出现的问题,不小心在返回的json字符串
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新能源汽车推广承诺保证合同
- 二零二五年度个人借款给公司合同附利息调整及提前还款条款
- 2025版征收拆迁补偿协议书(含居民安置房入住保障)
- 2025版环保科技项目投资建设合同
- 2025版知识产权保护合同管理与执行细则
- 二零二五版旅游客车租赁与景区导览服务合同
- 2025版开发商与建筑商桥梁隧道工程施工合同范本
- 二零二五年度超声刀美容仪器维修保养与服务合同
- 二零二五年电子商务平台安全监测与预警服务合同
- 2025版高科技企业研发贷款担保合同
- 活检钳取病理应用
- 范文酒店客房服务外包合同年
- 2025机器设备买卖合同模板
- 河北2024年华北理工大学附属医院选聘工作人员6人笔试历年典型考点(频考版试卷)附带答案详解版
- 丝绸之路的开拓者张骞人物介绍
- 餐饮店铺装修拆除方案
- 药事质控报告
- JGJT46-2024《施工现场临时用电安全技术标准》条文解读
- 美容外科临床技术操作规范
- 2024ESC心房颤动管理指南解读
- 集中空调预防空气传播性疾病应急预案
评论
0/150
提交评论