PHP处理Json字符串解码并返回空解
本文的一个例子讲述了PHP处理Json字符串解码并返回NULL的解决方案。分享给大家参考。具体方法如下:
一般来说,php使用json _ decode()函数对json字符串进行解码,第一个参数传递字符串,如果第二个参数为true,则返回array;如果为false,则返回对象。如果返回NULL,则报告错误,输出json_last_error(),得到的整数值对应错误提示。如下图所示:
Json_last_error()是4的整数,但是Json字符串在json_decode之前是不完整的,所以它的语法是错误的。
那么客户端提交的单个字符必然会影响json的格式,可以使用JS进行过滤,可以解决一般的问题,主要是过滤回车、空格和html标签。
实现代码如下:
/* *筛选函数*/函数htmlencode (str) {str=str。替换(/\ 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 ' ');返回字符串;}以上情况是必须将json字符串数据提交给服务器进行处理,只在客户端进行过滤。
出于某些原因,其他json_decode($str)返回空值:
1.$str只能用UTF-8编码
2.元素的末尾不能有逗号(不同于php的数组)
3.元素不能使用单引号
4.元素值之间不能有空格和\n,必须替换
如果遇到上述情况,可以按照上述方法处理。
PS:关于json操作,这里有一些比较实用的json在线工具供大家参考:
在线JSON代码检查,检查,美化和格式化工具:http://tools.jb51.net/code/json
JSON在线格式化工具:http://tools.jb51.net/code/jsonformat
在线XML/JSON相互转换工具:http://tools.jb51.net/code/xmljson
Json代码在线格式化/美化/压缩/编辑/转换工具:http://tools.jb51.net/code/jsoncodeformat
在线json压缩/转义工具:
http://tools.jb51.net/code/json_yasuo_trans
c语言风格/HTML/CSS/json代码格式化和美化工具:http://tools.jb51.net/code/ccode_html_css_json
希望这篇文章对大家的PHP编程有所帮助。
版权声明:PHP处理Json字符串解码并返回空解是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。