由於asihttprequest的作者已經明確不再維護這個庫了,所以我使用了較為輕量的mknetworkkit庫。
服務端,php自帶了json的序列化和反序列化函式:json_encode和json_decode。而對於客戶端,我採用了touchjson這個開源庫。
btw,github已經是新一代的、主流的開源文化和產業了,上面提到的開源庫,都來自github。 :)
首先,客戶端利用mknetworkkit庫向服務端發個請求:
服務端收到請求後,構造返回引數,然後回饋給客戶端:
$arr = array(); $arr['code'] = 200; $arr['msg'] = '你好,中文'; $jsondata = json_encode($arr); echo $jsondata;
這裡會遇到第乙個問題,就是msg欄位對應的中文變成null了。
google一下,得知是json要求utf-8編碼,現有簡單解決方案是轉換下編碼:
function gbk2utf8($data) return iconv('gbk', 'utf-8', $data); }
客戶端接著可以處理服務端返回的資料,利用touchjson進行反序列化:
nsstring *jsonstr = [operation responsestring]; nsdata *jsondata = [jsonstr datausingencoding:nsutf8stringencoding]; nserror *error = nil; nsdictionary *info = [[cjsondeserializer deserializer] deserializeasdictionary:jsondata error:&error]; if (info)
同樣地,客戶端也可以先封裝json資料,再傳遞給服務端。
php利用json_decode反序列化時,需要注意的是預設返回的是乙個php物件,如果需要轉換陣列,則需要指定$assoc引數為true,可參見: 。
Objective C和PHP進行json互動
由於asihttprequest的作者已經明確不再維護這個庫了,所以我使用了較為輕量的mknetworkkit庫。服務端,php自帶了json的序列化和反序列化函式 json encode和json decode。而對於客戶端,我採用了touchjson這個開源庫。btw,github已經是新一代的...
Objective C和PHP進行json互動
由於asihttprequest的作者已經明確不再維護這個庫了,所以我使用了較為輕量的mknetworkkit庫。服務端,php自帶了json的序列化和反序列化函式 json encode和json decode。而對於客戶端,我採用了touchjson這個開源庫。btw,github已經是新一代的...
Objective C之類和物件
面向過程程式設計 procedure oriented programming,pop 以事件為中心,關心完成該事件的詳細步驟,一步一步如何實現.物件導向程式設計 object oriented programming,oop 以事物為中心,也就是引數事件的參與者,設計事物的功能,而完成事件只是事物...