[PHP]对Json字符串解码返回NULL的一般解决方案
---------------------------------------------------------------------------------------------------------------------
php对json字符串解码使用json_decode()函数,第一个参数传字符串,第二个参数若为true,返回array;若为false,返回object。如果返回NULL,说明报错,输出json_last_error(),得到的整数值对应错误提示。如图:
json_last_error()比较常见的是整数4, 是json字符串在json_decode之前已不完整,所以语法错误。
那么一定是客户端提交的个别字符影响了json的格式,可以使用JS进行过滤,可以解决一般问题,主要过滤回车,空格,html标签。
/** 过滤函数* @黑眼诗人 <www.farwish.com>*/ 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,必须替换
如果遇到了此种情况,可以按照以上方式处理一遍。
Link: http://www.cnblogs.com/farwish/p/3940685.html
@黑眼诗人 <www.farwish.com>
[PHP]对Json字符串解码返回NULL的一般解决方案相关推荐
- PHP对Json字符串解码返回NULL的一般解决方案
php对json字符串解码使用json_decode()函数,第一个参数传字符串,第二个参数若为true,返回array:若为false,返回object.如果返回NULL,说明报错,输出json_l ...
- C语言实现JSON字符串解码与编码(三)源代码
申请/释放空间 因为JSON对象与字符串需要在堆上申请/释放空间,故定义2个函数指针变量来存在函数地址. static void* (*JSON_malloc)(size_t _Size);//申请空 ...
- 从永远到永远-JSON转JSON字符串值为null的处理
JSON转JSON字符串值为null的处理 1.需求 2.处理 3.其他问题 1.需求 应要求,将某上古接口数据存入了redis缓存,原接口返回数据格式是Map<String,Object> ...
- JSON.toJSONString格式化成json字符串时保留null属性
第一篇 JSON.toJSONString格式化成json字符串时保留null属性 原文:https://blog.csdn.net/qq_34412985/article/details/819 ...
- 如何解析json字符串及返回json数据到前端
前言:最近需要实现的任务是:写若干个接口,并且接口中的请求数据是json格式,然后按照请求参数读取前端提前整理好的json数据,并且将json数据返回到服务器端. 主要的工具:Gson 2.8.2 ...
- python接口返回json处理_python 接口返回的json字符串实例
如下所示: JSON 函数 使用 JSON 函数需要导入 json 库:import json. 函数描述 json.dumps将 Python 对象编码成 JSON 字符串 json.loads将已 ...
- PHP 获取JSON json_decode返回NULL解决办法
在用json_decode对JSON格式的字符串进行解码时竟然为空,页面空白啊,整半天检查这里检查那里,问同事都没用. 今天必应搜索了下,问题解决了,原来是有BOM头输出,大虾的解决办法如下: 1). ...
- json字符串多了双引号_Python-数据解析-json模块 !
import json json 一种轻量级的数据交换格式. 一.JSON 的值 数字(整数或浮点数) 字符串(在双引号中) 逻辑值(true 或 false) 数组(在方括号中) 对象(在花括号中) ...
- Python 中的json字符串以及使用
1.什么是JSON JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个 ...
最新文章
- DeepMind提出基于视觉的强化学习模型,十八般兵器对机器人不在话下
- motan rpc java demo_轻量级RPC框架-motan
- hdu3699(不等式dfs)
- 抓取扑克之星免费赛玩家排行榜
- java 反查域名_C段查询雏形之在Java中反查一个IP上的所有域名(旁站查询)
- 获取本机IP地址[JavaScript / Node.js]
- λ表达式_Java 8新特性:学习如何使用Lambda表达式,一看必懂
- 自定义函数_python3基础07函数(自定义)
- 内存泄露从入门到精通三部曲之排查方法篇
- Linux curl命令
- python怎么创建变量balance_在Python中将变量从一个函数修改为另一个函数
- 深入理解JVM之JVM内存区域与内存分配
- 例4.3 数制转换 - 九度教程第44题(进制转换)
- 功能强大的pdf控件,用户无需安装任何软件即可使用
- 900款工作岗位竞聘PPT模板免费下载
- 用力过猛的“中产阶级教育
- html中如何设计圆形图案,纯CSS绘制漂亮的圆形图案效果
- 为自己的站点实现访客统计
- 次世代建模师电脑里面收藏的素材共享
- CVE-2019-2725
热门文章
- Python序列化的使用(有少量修改)
- 云宏大讲坛 | 容器的前世今生
- 浅谈Java泛型中的? extends E和?super E
- GVRP的应用—华为拓扑
- Invokedynamic:Java的秘密武器
- Windows10 手机应用程序开发 - 3. 做一个简单的计算器界面
- Fov手术会不会在手术中新增手术边界
- Schema initialization FAILED! Metastore state would be inconsistent !!
- Python处理小学体育中的跑步计时数据并统计得分
- ERRORS: ?: (admin.E408) 'django.contrib.auth.middleware.AuthenticationMiddleware' must be in MIDDLEW