由於asihttprequest的作者已經明確不再維護這個庫了,所以我使用了較為輕量的mknetworkkit庫。
服務端,php自帶了json的序列化和反序列化函式:json_encode和json_decode。而對於客戶端,我採用了touchjson這個開源庫。
btw,github已經是新一代的、主流的開源文化和產業了,上面提到的開源庫,都來自github。 :)
首先,客戶端利用mknetworkkit庫向服務端發個請求:
服務端收到請求後,構造返回引數,然後回饋給客戶端:
1
2
3
4
5
6
$arr
=
array
();
$arr
[
'code'
] = 200;
$arr
[
'msg'
] =
'你好,中文'
;
$jsondata
= json_encode(
$arr
);
echo
$jsondata
;
這裡會遇到第乙個問題,就是msg欄位對應的中文變成null了。
google一下,得知是json要求utf-8編碼,現有簡單解決方案是轉換下編碼:
1
2
3
4
5
6
function
gbk2utf8(
$data
)
return
iconv(
'gbk'
,
'utf-8'
,
$data
);
}
客戶端接著可以處理服務端返回的資料,利用touchjson進行反序列化:
1
2
3
4
5
6
7
8
9
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 以事物為中心,也就是引數事件的參與者,設計事物的功能,而完成事件只是事物...