json_decode转换json数据为null

来源:互联网 发布:怎么在淘宝内置密码 编辑:程序博客网 时间:2024/06/05 14:45

经常使用json_decode()转换json字符串,一直都很顺利,然而今天碰到了一个头疼的问题,json字符串转换过之后一直为null
上网搜索了下,可以使用json_last_error()函数来查看json转换最后发生的错误,json_last_error_msg()用来显示最后发生的错误详情。可以分别参考json_last_error和json_last_error_msg 。
一般错误都是为4,意思是编码错误。因为json_decode()只能够转换UTF-8编码的json字符串。
然而,我的错误显示是3控制字符错误,可能是编码不对
尝试过以下方法:

一: json 字符串中反斜杠被转义,使用 htmlspecialchars_decode() 函数处理;二:在保存 json 数据时使用 urlencode() 函数;(因为json数据不是在我这边控制的,而且将得到的json保存为文本再转换是没问题的,故没验证该方法)三:将编码转换为UTF-8$content = mb_detect_encoding($json, array("ASCII",'UTF-8',"GB2312","GBK",'BIG5'));       //查看编码$json= mb_convert_encoding($content tent , "UTF-8", "GBK");                //将字符串转为UTF-8四:在文件头加五:查找文件中是否存在`bom`,如果存在也会出现该问题;六:检查json字符串中是否多逗号;七:检查json中的名称和值是否用的是双引号,在json里只能用双引号表示字符串,不要用单引号;八:检查json中的值是否有数字类型的,并且首位为零;(这个貌似没问题)九:字符的表示方式方式有很多种,但下面的都不支持 ,如:`\x06` ,可以将这些字符换为空,如:

json=strreplace("\x06","",json);

因为php也支持这种十六进制方式,所以可以用eval来达到转义效果。

我的问题是因为使用了AES进行加密、解密,所以可能这个过程中出现了问题,最后把不支持的字符去掉就OK了。这个还是在overstockflow上找到的。

Author:leedaning
本文地址:http://blog.csdn.net/leedaning/article/details/70210770

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 在菲律宾旅游签证过期怎么办 微博转发被限制怎么办 百香果蜂蜜沉在下面怎么办 领导要潜我老婆怎么办 被领导潜了该怎么办 实习期单位领导开除我我该怎么办 泡泡袖显手臂肥怎么办 客人想吃霸王餐怎么办 在四楼上课时发生地震怎么办 学生在上课时发生地震怎么办 学生上课时发生地震怎么办 老板承诺的工资不兑现怎么办 只有本科毕业证没有学位证怎么办 孩子跟坏孩子玩怎么办 苕帚跟簸箕掉下来了怎么办 身体发烫又觉得冷怎么办 买苹果8后悔了怎么办 手机死机了怎么办不可拆卸电池 百度网盘密码忘了怎么办 空调冷凝水无法排出怎么办 转账时名字错了怎么办 打款名字错了怎么办 转账名字写错了怎么办 国际汇款汇错了怎么办 汇款英文写错了怎么办 体重秤不显示了怎么办 在ur试完衣服怎么办 汽车主机没有倒车检测线怎么办 合格考补考没过怎么办 合同一式两份双方都丢失怎么办 自控力差的人怎么办 孩子缺乏自控能力该怎么办 名片上换了号码怎么办 格力空调显示u8怎么办 格力空调出现u8怎么办 双肺多发斑点影怎么办 外文翻译没5000字怎么办 睡出永久睡痕怎么办 英语不好学学英文软件怎么办 遥控汽车只能原地打转怎么办 铝合金门上的胶带纸撕不掉怎么办