2011-01-29 16 views
3

我的iPhone應用程序正在從PHP網站抓取JSON對象。PHP與Objective-C之間的JSON對象

PHP站點上的對象具有多個整數屬性。

被從數據庫中檢索從數據庫(在那裏它們被存儲爲INT)回來像這樣在JSON性能:"seatedplayers":"3"

了在在PHP代碼看起來像這樣修改的屬性該JSON:"currentseat":1

在我的對象 - 我使用的是NSNumberFormatter正確格式化它們像這樣:
[numFormatter numberFromString:[jsonObject objectForKey:@"seatedplayers"]];(JSONObject的是NSDictionary

該代碼可以在引用值的周圍的屬性上正常工作,但對其他引用無效。如果我在我的Objective-C代碼中添加stringValue,它適用於不帶引號的屬性,但不帶引號。

現在,我的大問題在於,這個應用程序需要與我不親自編寫的站點進行通信,因此Objective-C中的哪些代碼可以編寫來處理這兩個實例?

編輯
這是我得到的NSDictionary的JSONObject。

- (NSDictionary *) getJSONObjectFromWebAddress:(NSString *) address { 
// Prepare the URL Request 
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:address]]; 

// Perform the request, expecting JSON back 
NSData *responseData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 

NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; 

NSError *error; 
SBJsonParser *parser = [[SBJsonParser new] autorelease]; 
NSDictionary *jsonObject = [parser objectWithString:responseString error:&error]; 
if (!jsonObject) { 
    NSLog(@"%@", error); 
} 

[responseString release]; 
return jsonObject; 
} 
+0

stringValue是什麼?你是如何獲得帶有json值的NSDictionary的?我個人會使用NSScanner,或者用純C編寫一些東西。 – 2011-01-29 01:53:50

+0

添加了如何將它作爲NSDictionary添加到問題的答案。我會查找NSScanner,因爲我不知道它是什麼。 – 2011-01-29 02:08:13

回答

2

我有同樣的問題。幸運的是,NSString和NSNumber都會響應intValue,所以你可以放心地使用它。


//NSDictionary* myJsonParsed; 
[NSString stringWithFormat:@"%d", [[myJsonParsed valueForKey:@"stringOrInt"] intValue]];