


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 赣东学院《专业英语B》2023-2024学年第一学期期末试卷
- 三年级科学上册第四单元4玻璃和陶瓷教案苏教版
- 《组织签字仪式》课件
- 《珍惜校园生活》课件
- 《计算机操作员理论》课件
- 安全与小狗玩耍的课件
- 上半年销售工作总结及下半年工作参考计划范文
- 奶粉培训课件
- 《心理健康教育公开》课件
- 2021年全国统一高考化学试卷(全国乙卷)
- 大连市小升初手册
- 《自然辩证法》课后习题答案自然辩证法课后题答案
- 造价咨询结算审核服务方案
- 中国人民财产保险股份有限公司机动车综合商业保险条款
- 燃气工程监理实施细则(通用版)
- E车E拍行车记录仪说明书 - 图文-
- 人才梯队-继任计划-建设方案(珍贵)
- 《健身气功》(选修)教学大纲
- 王家岩隧道工程地质勘察报告(总结)
- 《昆明的雨》优质课一等奖(课堂PPT)
- EHS的组织架构和职责说明(共2页)
评论
0/150
提交评论