1. 程式人生 > >json中文解決編碼問題,和去除雙引號,加單引號方法。

json中文解決編碼問題,和去除雙引號,加單引號方法。

/*json新增單引號*/
function my_arr_zhuan_json($arr)
{
    $jsonstr = $this->my_json_decode(json_encode($arr,true));

    $new_jsonstr = $this->decodeUnicode($jsonstr);

    $str1 = str_replace("name:","name:'",$new_jsonstr);

    $str2 = str_replace(",data","',data",$str1);

    return $str2;
}

/*json去除所有雙引號*/
function my_json_decode($str) {        //       
    $str = preg_replace('#"(.*?)"#i', '$1$2', $str);   //去掉所有的雙引號        
    return $str;    
}


/*json只去除key雙引號*/
function my_json_decode($str) {        //       
    $str = preg_replace('/"(\w+)"(\s*:\s*)/is', '$1$2', $str);   //去掉key的雙引號        
    return $str;    
} 

/*json解析中文*/   
function decodeUnicode($str)
{
    return preg_replace_callback('/\\\\u([0-9a-f]{4})/i',
        create_function(
            '$matches',
            'return mb_convert_encoding(pack("H*", $matches[1] ), "UTF-8", "UCS-2BE");'
        ),
        $str);
}