2013-11-21 128 views
-1

我做了我的第一個RESTful web服務,它只需要獲得一個整數值,它將返回我的MySQL數據庫的數據集。 例如,如果給我寄了2得到這樣的響應:Objective-C:發送/接收JSON

[{"Player_ID":"2","Login":"Test123","Passwort":"***********"}] 

有人能解釋我如何可以張貼在Objective C的一個int值,並解釋我是如何可以與MySQL的數據集的工作?例如,將label01.text設置爲登錄「test123」。

將是巨大的,如果有人能幫助我,對我有一個web服務的工作是新的。

+0

說實話,沒有那麼多。我不明白如何將帖子設置爲整數。 NSMutableURLRequest * request = [[NSMutableURLRequest alloc] init]; [request setURL:[NSURL URLWithString:@「http://192.168.2.112getdata.php」]]; [請求setHTTPMethod:@「POST」]; – Hakeemo

回答

1

至於張貼INT變,的伊利亞ñ答案應該工作。

這裏是你將如何與數據進行工作,你得到的結果:

這裏的NSJSONSerialization文檔,以供參考:NSJSONSerialization Class Documentation

基本上,只有兩種類型的OBJ-C的對象,可以被序列化一個NSDictionary和NSArray的。如果您需要發送JSON數據,你可能會想要做的是這樣的:

NSNumber* loginId = @1234; 
NSDictionary* dict = @{@"Login" : loginId}; 
NSError* err = nil; 
NSData* jsonData = [NSJSONSerialization dataWithJSONObject:dict options:0 error:&err]; 
NSString* jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 

這會給你一個JSON格式的NSString,你可以通關的東西期待着什麼用JSON序列:

jsonString == @{@"Login":"1234"} 

如果您收到您的Web服務JSON字符串,你需要做的事情,在OBJ - C的,你可以做到以下幾點:

NSString* jsonString = theJSONstringYouWereSentFromWherever; 
NSError* err = nil; 
NSData* jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; 
id data = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&err]; 

在這個POI nt,數據可以是NSArray或NSDictionary。你需要檢查它是什麼,以及你需要做什麼。請記住,您可以使用包含更多字典和/或數組的字典,或包含更多數組和/或字典的數組。 JSONObjectWithData將把你得到的任何東西變成一些匹配的Objecive-C數據結構。

對於你的榜樣,你會得到字符串@ 「[{」 Player_ID 「:」 2" , 「登錄」: 「Test123」, 「Passwort」: 「* ****」}] 「

反序列化,你會風與下面的NSDictionary:

@{"Player_ID":"2","Login":"Test123","Passwort":"***********"} 

你可以這樣能夠做到:

label01.text = [dict objectForKey:@"Login"]; 

希望這就是你要找的。

+1

謝謝,你幫了我很多! – Hakeemo

0

從你的問題中,我相信你將會得到現有框架之一的最佳服務。

按照iOS Most mature REST service library,試試RESTkit。

當然,你也可以手動形成請求:

[request setBody:[NSString stringWithFormat:@"%d", integerValue]];