JSON字符串key缺少双引号的解决方法
来源:互联网 发布:stc单片机烧录 编辑:程序博客网 时间:2024/04/28 23:07
JSON字符串key缺少引号的解决方法
JSON字符串是key:value形式的字符串,正常key是由双引号括起来的。
例如:
<?php$data = array('name'=>'fdipzone');echo json_encode($data); // {"name":"fdipzone"}print_r(json_decode(json_encode($data), true)); //Array ( [name] => fdipzone )?>
但如果json字符串的key缺少双引括起来,则json_decode会失败。
<?php$str = '{"name":"fdipzone"}';var_dump(json_decode($str, true)); // array(1) { ["name"]=> string(8) "fdipzone" }$str1 = '{name:"fdipzone"}';var_dump(json_decode($str1, true)); // NULL?>
解决方法:判断是否存在缺少双引括起来的key,如缺少则先用正则替换为"key",再进行json_decode操作。
<?php/** 兼容key没有双引括起来的JSON字符串解析* @param String $str JSON字符串* @param boolean $mod true:Array,false:Object* @return Array/Object*/function ext_json_decode($str, $mode=false){ if(preg_match('/\w:/', $str)){ $str = preg_replace('/(\w+):/is', '"$1":', $str); } return json_decode($str, $mode);}$str = '{"name":"fdipzone"}';var_dump(ext_json_decode($str, true)); // array(1) { ["name"]=> string(8) "fdipzone" }$str1 = '{name:"fdipzone"}';var_dump(ext_json_decode($str1, true)); // array(1) { ["name"]=> string(8) "fdipzone" }?>
1 1
- JSON字符串key缺少双引号的解决方法
- JSON字符串key缺少双引号的解决方法
- JSON字符串key缺少双引号的解决方法
- PHP去掉json字符串key的双引号
- 缺少双引号的字符串转换成Json对象
- 将key名不带双引号的JSON字符串转换成JSON对象的方法
- 将key名不带双引号的JSON字符串转换成JSON对象的方法
- 将key名不带双引号的JSON字符串转换成JSON对象的方法
- JavaScript:将key名不带双引号的JSON字符串转换成JSON对象的方法
- 字典类型的json字符串中的key要用双引号,而不能用单引号
- js中json字符串转换为对象以及转换是报 缺少";"错误的解决方法
- eval进行json字符串转换时报缺少缺少“;”的解决方案
- PHP 解析缺少引号的json字符串
- js添加json出现key双引号问题
- JSON 字符串 单引号双引号 处理
- 从json字符串获取key的value
- c++中对于json的key不带双引号的问题修复
- json的问题 --- 缺少“;”
- Android 自定义view 和 onMeasure方法介绍
- 2015同花顺校园招聘软件开发类笔试题(笔试时间:2014-9-15)
- KMP算法应用-阿里笔试题
- 分布式发布订阅消息系统 Kafka 架构设计
- 字符串匹配的KMP算法
- JSON字符串key缺少双引号的解决方法
- 找工作知识储备(1)---从头说catalan数及笔试面试里那些相关的问题
- ] 找工作知识储备(2)---数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串
- 找工作知识储备(3)---从头说12种排序算法:原理、图解、动画视频演示、代码以及笔试面试题目中的应用
- Android运行时ART加载OAT文件的过程分析
- CF 266 C. Number of Ways
- oracle导出文件字符集修改
- CF 266 B. Wonder Room
- SPRING原理解析-Ioc容器初始化