PHP - json_decode returns NULL的解决办法
碰到了PHP json_decode returns NULL, 肿么办?
1. google 一下, 关键字:PHP json_decode NULL
首先你能看到我这个这个帖子:)
http://www.cnblogs.com/shgq/admin/EditPosts.aspx?opt=1
2. 使用json_last_error()函数获取到的返回值来帮助我们判断出问题的原因。
其中如果提示错误JSON_ERROR_SYNTAX(Syntax error),表示json串格式错误。
可以通过以下几个方式排错:
a. json字符串必须以双引号包含
$output = str_replace("'", '"', $output);
b json字符串必须是utf8编码
$output = iconv('gbk', 'utf8', $output);
c.不能有多余的逗号 如:[1,2,]
用正则替换掉,preg_replace('/,\s*([\]}])/m', '$1', $output)
3. 我用UTF-8的php写了一个接口,调用时字符串tace出来也正常。
比较了json_decode 前字符串的长度,字符串比想要的多出了6个字符。
分别是239,187,191,239,187,191
有文章说会多3个字符,是DOM的标志。DOM是什么不解释,自己google去。
我的程序多出6个字符,实践才是真道理啊。
4. 解决办法一:调用接口的地方预处理一下:substr($str,6)
5.如果每次都预处理,太烦,有没有更方便的办法了从源上解决问题了?
解决办法2: 我用nodepad++把该文件保存成UTF-8 without DOM,搞定。
再也不用担心null问题了。
最新文章
- [原创]cocos2d-x研习录-第三阶 特性之物理引擎
- VMware Workstation(虚拟机)v10.0.1 简体中文破解版
- [原创] 使用LP Wizard 10.5 制作 Allegro PCB封装
- JSON和JSONP区别和联系
- JSP中,当页面为404或者500时。设置跳转到错误提示页面
- 51nod1258 序列求和V4
- jquery手写焦点轮播图-------解决最后一张无缝跳转第一张的问题
- CentOS 5.6服务器配置YUM安装Apache+php+Mysql+phpmyadmin
- Cocos2dx 3.1.1 学习笔记整理(1) 新建项目
- 进入IT行业四月后的感想(生活日志)欢迎评论
- Ubuntu14.04设置开机自启动程序
- 修改(同步)linux时间
- IntelliJ IDEA远程调试(Debug)Tomcat
- 后台调用前端JS
- JVM规范系列第6章:Java虚拟机指令集
- linux下通过sed命令直接修改文件内容
- 上下文相关的GMM-HMM声学模型续:参数共享
- WPF编程,通过Double Animation同时动态缩放和旋转控件的一种方法。
- Tushare数据的绘图操作
- 有哪些sql优化工具
热门文章
- 使用Lucene.Net做一个简单的搜索引擎-全文索引
- 云机器同步数据 - rsync
- percona-toolkit 之 【pt-query-digest】介绍
- C#开发BIMFACE系列30 服务端API之模型对比1:发起模型对比
- Git 相关问题分享,git reset与git revert的区别?
- LeetCode 154.Find Minimum in Rotated Sorted Array II(H)(P)
- 大型Java进阶专题(三) 软件架构设计原则(下)
- 图像IO
- iPhone UIButton图标与文字间距设置【转】
- 01 搭建EasyMock环境