2年前 (2018-12-18)  技术 |   抢沙发  281 
文章评分 1 次,平均分 5.0

有些json数据key值不带引号,php中的json_decode方法无法执行,必须经过处理,给出处理函数:

/*
* 兼容key没有双引括起来的JSON字符串解析
* @param String $str JSON字符串
* @param boolean $mod true:Array,false:Object
* @return Array/Object
* @auther zaixuasd@126.com
* @website www.365keke.com
*/
function 365keke_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);
}

 

如果此文对您有用,麻烦点击下方广告支持我,给我动力。

发表评论

暂无评论

切换注册

登录

忘记密码 ?

切换登录

注册

扫一扫二维码分享