PHP可以通過內置的功能json_encode和json_decode使用JSON。所以如果你願意,你可以繼續使用CakePHP作爲後端,客戶端既不知道也不關心。
對於PHP JSON文檔,請參閱:http://us.php.net/manual/en/function.json-encode.php
使用JSON的是什麼格式,您在客戶端和服務器之間發送數據的選擇。 JSON恰好在用Javascript編寫的客戶端方便。你不需要使用JSON來製作一個iPhone友好的網站/網絡應用程序。
我一般的做法是對我的PHP數據對象的toJSON
功能。我有一個函數用於將JSON發送到客戶端,並且在發送對象之前它首先查找toJSON
方法。如果它發現它,它會調用它併發送結果。這使對象有機會呈現最小的一組數據成員,而不是發送所有內容。這也是Ruby on Rails中使用的基本方法。
下面是一個例子。也許CakePHP有他們自己的等價物:
function sendJSON($data) {
header('Content-Type: application/json');
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
echo json_encode_custom($data);
//echo '(' . json_encode($data) . ')';
}
function json_encode_custom($data) {
if(is_object($data) && method_exists($data, 'toJSON'))
$data = $data->toJSON();
return json_encode($data);
}
我回答下面關於使用JSON和PHP。有關「建立一個模板,這樣的PhoneGap應用程序脫機工作」部分,你可以看看有規定做MVC(如Backbone.js的還是一百萬等)的一些功能框架。只要該頁面沒有被重新加載,這將工作。數據存儲在內存中,通過Ajax與服務器同步的時候是可以的,如果不能,那麼你可以註冊一個錯誤回調,以處理這種情況。 – webjprgm 2012-03-28 05:35:25