php中Json字符串key加引号
2017-11-07 09:32
323 查看
php中Json字符串key加引号
在php中,有时会遇到json字符串的key值没有加引号的情况,需要增加引号,否则json_decode()函数不能正确解析。网上的文章,做法大多是使用正则表达式替换,但是如果json的value中也含有冒号,则大多数文章的添加引号用法是错误的。 笔者参考网上的文章,自己进行了整理和测试,正确的代码如下:
//json中的Key增加上引号. function json_replace_key($str) { /* //该版本没有办法解决value中带时分秒之间的冒号问题 if(preg_match('/\w:/', $str)) $str = preg_replace('/(\w+):/is', '"$1":', $str); return $str; */ $str = trim( $str ); $str = ltrim( $str, '(' ); $str = rtrim( $str, ')' ); $a = preg_split('#(?<!\\\\)\"#', $str ); for( $i=0; $i < count( $a ); $i+=2 ) { $s = $a[$i]; $s = preg_replace('#([^\s\{\}\:\,]+):#', '"\1":', $s ); $a[$i] = $s; } return implode( '"', $a ); }
以上代码,已经过本人亲自验证,请放心使用。
相关文章推荐
- PHP 解析缺少引号的json字符串
- PHP处理JSON字符串key缺少双引号的解决方法
- PHP json字符串对特殊字符处理(单引号,双引号)
- C# 去除json字符串key引号
- PHP去掉json字符串key的双引号
- PHP处理JSON字符串key缺少双引号的解决方法
- 字典类型的json字符串中的key要用双引号,而不能用单引号
- iOS中使用NSJSONSerialization转换成json字符串后传递到后台的引号转义处理
- php单引号中字符串的转义(\"\\\")
- 单引号,双引号 和 heredoc 初始化php字符串之间的区别
- Bug:Sqlite3插入时由于json不能识别传入的单引号字符串引起的问题
- Json拼接字符串必须用双引号
- ***php解析JSON二维数组字符串(json_decode函数第二个参数True和False的区别)
- PHP返回的json字符串包含的特殊字符
- PHP学习 - 返回的json对象变成了字符串
- PHP如何正常转换中文json格式字符串
- PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
- php中JSON的标准:双引号而非单引号
- artTemplate模板引擎学习(json的key字符串两端不能有空格)
- 通过java后台拼接json字符串修改页面样式----一页多用 + 双引号(")和单引号(')截断字符串解决方案