PHP处理Json字符串解码返回NULL的解决方法


Posted in PHP onSeptember 01, 2014

本文实例讲述了PHP处理Json字符串解码返回NULL的解决方法。分享给大家供大家参考之用。具体方法如下:

一般来说,php对json字符串解码使用json_decode()函数,第一个参数传字符串,第二个参数若为true,返回array;若为false,返回object。如果返回NULL,说明报错,输出json_last_error(),得到的整数值对应错误提示。如下图所示:

PHP处理Json字符串解码返回NULL的解决方法

json_last_error()比较常见的是整数4, 是json字符串在json_decode之前已不完整,所以语法错误。

那么一定是客户端提交的个别字符影响了json的格式,可以使用JS进行过滤,可以解决一般问题,主要过滤回车,空格,html标签。

实现代码如下:

/*
* 过滤函数
*/
function htmlEncode(str) {
 str = str.replace(/\s+/ig, '');
 str = str.replace(/&/g, '');
 str = str.replace(/</g, '');
 str = str.replace(/>/g, '');
 str = str.replace(/(?:t| |v|r)*n/g, '<br />');
 str = str.replace(/t/g, '    ');
 str = str.replace(/x22/g, '"');
 str = str.replace(/x27/g, ''');
 str = str.replace(/"/g, "");
 return str;
}

以上情况针对的是,你必须提交json字符串数据到服务端处理,只能在客户端进行过滤。

其它的json_decode($str)返回NULL的一些原因:

1.$str只能UTF-8编码

2.元素最后不能有逗号(与php的array不同)

3.元素不能使用单引号

4.元素值中间不能有空格和\n,必须替换

如果大家遇到了上述情况,可以按照以上方法处理一下。

PHP 相关文章推荐
一个目录遍历函数
Oct 09 PHP
PHP类的使用 实例代码讲解
Dec 28 PHP
php数组函数序列之in_array() 查找数组值是否存在
Oct 29 PHP
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
Dec 16 PHP
PHP中使用curl入门教程
Jul 02 PHP
PHP的命令行命令使用指南
Aug 18 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
Jan 08 PHP
Yii框架组件和事件行为管理详解
May 20 PHP
laravel学习教程之存取器
Jul 30 PHP
PHP实现四种基础排序算法的运行时间比较(推荐)
Aug 11 PHP
php版微信自动登录并获取昵称的方法
Sep 23 PHP
PHP设计模式概论【概念、分类、原则等】
May 01 PHP
PHP实现更新中间关联表数据的两种方法
Sep 01 #PHP
重新认识php array_merge函数
Aug 31 #PHP
浅析PHP中strlen和mb_strlen的区别
Aug 31 #PHP
PHP提示Deprecated: mysql_connect(): The mysql extension is deprecated的解决方法
Aug 28 #PHP
PHP实现数组递归转义的方法
Aug 28 #PHP
PHP之autoload运行机制实例分析
Aug 28 #PHP
php+MySQL判断update语句是否执行成功的方法
Aug 28 #PHP
You might like
PHP 存取 MySQL 数据库的一个例子
2006/10/09 PHP
Mysql中limit的用法方法详解与注意事项
2008/04/19 PHP
很让人受教的 提高php代码质量36计
2012/09/05 PHP
一个比较不错的PHP日历类分享
2014/11/18 PHP
PHP全局变量与超级全局变量区别分析
2016/04/01 PHP
php自动载入类用法实例分析
2016/06/24 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
2017/03/02 PHP
PHP快速推送微信模板消息
2017/04/14 PHP
PHP实现打包下载文件的方法示例
2017/10/07 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
javascript 面向对象编程 万物皆对象
2009/09/17 Javascript
基于Jquery的简单&amp;简陋Tabs插件代码
2010/02/09 Javascript
jquery定时滑出可最小化的底部提示层特效代码
2013/10/02 Javascript
Jquery对数组的操作技巧整理
2014/03/25 Javascript
node.js WEB开发中图片验证码的实现方法
2014/06/03 Javascript
Bootstrap CSS组件之按钮下拉菜单
2016/12/17 Javascript
JavaScript生成.xls文件的代码
2016/12/22 Javascript
Angular.js实现获取验证码倒计时60秒按钮的简单方法
2017/10/18 Javascript
Vue render函数实战之实现tabs选项卡组件
2019/04/22 Javascript
Vue 设置axios请求格式为form-data的操作步骤
2019/10/29 Javascript
Python中replace方法实例分析
2014/08/20 Python
简单谈谈Python中的json与pickle
2017/07/19 Python
python中利用Future对象异步返回结果示例代码
2017/09/07 Python
Python面向对象程序设计示例小结
2019/01/30 Python
Python Datetime模块和Calendar模块用法实例分析
2019/04/15 Python
Python 2/3下处理cjk编码的zip文件的方法
2019/04/26 Python
简单了解Python生成器是什么
2019/07/02 Python
彻底解决pip下载pytorch慢的问题方法
2021/03/01 Python
Myprotein加拿大官网:欧洲第一的运动营养品牌
2018/01/06 全球购物
教育学习自我评价
2014/02/03 职场文书
《记承天寺夜游》教学反思
2014/02/16 职场文书
合同协议书格式
2014/04/18 职场文书
大专生求职信
2014/06/29 职场文书
公司内部升职自荐信
2015/03/27 职场文书
毕业生求职自荐信(2016最新版)
2016/01/28 职场文书
Python爬取某拍短视频
2021/06/11 Python