碰到了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问题了。

最新文章

  1. [原创]cocos2d-x研习录-第三阶 特性之物理引擎
  2. VMware Workstation(虚拟机)v10.0.1 简体中文破解版
  3. [原创] 使用LP Wizard 10.5 制作 Allegro PCB封装
  4. JSON和JSONP区别和联系
  5. JSP中,当页面为404或者500时。设置跳转到错误提示页面
  6. 51nod1258 序列求和V4
  7. jquery手写焦点轮播图-------解决最后一张无缝跳转第一张的问题
  8. CentOS 5.6服务器配置YUM安装Apache+php+Mysql+phpmyadmin
  9. Cocos2dx 3.1.1 学习笔记整理(1) 新建项目
  10. 进入IT行业四月后的感想(生活日志)欢迎评论
  11. Ubuntu14.04设置开机自启动程序
  12. 修改(同步)linux时间
  13. IntelliJ IDEA远程调试(Debug)Tomcat
  14. 后台调用前端JS
  15. JVM规范系列第6章:Java虚拟机指令集
  16. linux下通过sed命令直接修改文件内容
  17. 上下文相关的GMM-HMM声学模型续:参数共享
  18. WPF编程,通过Double Animation同时动态缩放和旋转控件的一种方法。
  19. Tushare数据的绘图操作
  20. 有哪些sql优化工具

热门文章

  1. 使用Lucene.Net做一个简单的搜索引擎-全文索引
  2. 云机器同步数据 - rsync
  3. percona-toolkit 之 【pt-query-digest】介绍
  4. C#开发BIMFACE系列30 服务端API之模型对比1:发起模型对比
  5. Git 相关问题分享,git reset与git revert的区别?
  6. LeetCode 154.Find Minimum in Rotated Sorted Array II(H)(P)
  7. 大型Java进阶专题(三) 软件架构设计原则(下)
  8. 图像IO
  9. iPhone UIButton图标与文字间距设置【转】
  10. 01 搭建EasyMock环境