您好,登錄后才能下訂單哦!
忽然感覺很久沒上博了,今日上來一看居然將近一個月沒寫新文章了,再不“生產(chǎn)”兩篇,感覺也太對不起自己的博了。最近正好項目里有用到一些 JSON 的部分,于是今天就寫一點使用心得來與大家分享一下吧。
說道 JSON 還真是一個好東西,一個字,就是“快”。前一段我把一個原先提供返回 XML 的服務(wù)改成 JSON 以后,速度竟然提高了將近 3 倍,特別是與前端 Ajax 客戶端集成使用,真可謂之“天作之合”。但是 JSON 對中文的支持一直以來為人們所詬病,網(wǎng)上關(guān)于這方面的問題也是一抓一大把,但是不要誤解,實際上這個問題并沒有想象的那么麻煩,以下石頭會通過一個實例來說明一下這個問題。
[@more@]廢話少說,代碼先行:
client.php :
server.php :
include_once('JSON.php');
// create a new instance of Services_JSON
$json = new Services_JSON();
// convert a complexe value to JSON notation, and send it to the browser
$value = array('name' => 'stone', 'desc' => iconv('gb2312','utf-8','哈哈'), 'attach' => array(1, 2, 'baz'));
$output = $json->encode($value);
if (isset($_REQUEST['ret'])) {
// header('Content-type: text/x-json; charset=utf-8');
echo $output;
// prints: ["foo","bar",[1,2,"baz"],[3,[4]]]
} else {
header('X-JSON: ('.$output.')');
}
// accept incoming POST data, assumed to be in JSON notation
$input = file_get_contents('php://input', 1000000);
$value = $json->decode($input);
?>
第一種方法我們把分析 JSON 返回信息的任務(wù)也全權(quán)交由“萬能”的 Prototype 來做,但是 Prototype 是通過自己定義的 HTTP Header 信息里的 X-JSON 頭來傳遞信息,而據(jù)我所知 IE 里的 HTTP Header 長度默認是有限制的,所以我還是推薦大家用第二種方法:用 parseJSON 方法來自助處理 JSON 的數(shù)據(jù),既簡單又有效 ... 分析好后就可以用了解析出來的 JavaScript Object 來做你想要做的排列咯 ... 說到中文問題,實際上也很簡單,只需要把要傳遞的數(shù)據(jù)做一下 utf-8 轉(zhuǎn)換即可,我這里用 php 做例子所以用 iconv 函數(shù)就可以了,Java 的話,更不用說了,編碼轉(zhuǎn)換就是他的強項呢。
OK ... 寫完收工,下班回家,又是一個周末,Happy Time :)
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。