php解决key没有双引号的问题

来源:互联网 时间:1970-01-01

php解决key没有双引号的问题,有需要的朋友可以参考下。

到网上找的资料基本都是这个函数

function ext_json_decode($str, $mode=false){ if(preg_match('//w:/', $str)){ $str = preg_replace('/(/w+):/is', '"$1":', $str); } return json_decode($str, $mode);}

这代码从逻辑上本身就是错误的,比如value里面有个:,解析自然出错,下面是修正过后的

function ext_json_decode($str, $mode=false){ $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; } //var_dump($a); $str = implode( '"', $a ); return json_decode($str, $mode);}


版权声明:本文为博主原创文章,未经博主允许不得转载。


相关阅读:
Top