2011-02-25 50 views
2

我正在接收來自我的網絡服務的以下響應? 任何人都有想法如何使用SBJSON處理它?如何使用SBJSON iPhone處理JSON響應?

{ 
"match_details" : 
    { 
     "score" : 86-1 
     "over" : 1.1 
     "runrate" : 73.71 
     "team_name" : England 
     "short_name" : ENG 
     "extra_run" : 50 
    } 

"players" : 
    { 
     "key_0" : 
      { 
       "is_out" : 2 
       "runs" : 4 
       "balls" : 2 
       "four" : 1 
       "six" : 0 
       "batsman_name" : Ajmal Shahzad * 
       "wicket_info" : not out 
      } 

     "key_1" : 
      { 
       "is_out" : 1 
       "runs" : 12 
       "balls" : 6 
       "four" : 2 
       "six" : 0 
       "batsman_name" : Andrew Strauss 
       "wicket_info" : c. Kevin b.Kevin 
      } 

     "key_2" : 
      { 
       "is_out" : 2 
       "runs" : 20 
       "balls" : 7 
       "four" : 4 
       "six" : 0 
       "batsman_name" : Chris Tremlett * 
       "wicket_info" : not out 
      } 

     } 

"fow" : 
    { 
     "0" : 40-1 
    } 

} 

我做了這樣的事情:

+1

你閱讀手冊? – 2011-02-25 15:29:25

回答

3

導入SBJSON/JSON.h頭文件和做這樣的事情......

NSString *jsonResponseString = ...your JSON response...; 

NSDictionary *jsonDictionary = [jsonResponseString JSONValue]; 

NSDictionary *players = [jsonDictionary objectForKey:@"players"]; 

NSDictionary *player = [players objectForKey:@"key_0"]; 

NSLog(@"%@ %@ %@ %@ %@ %@ %@", [player objectForKey:@"is_out"], 
    [player objectForKey:@"runs"], [player objectForKey:@"balls"], 
    [player objectForKey:@"four"], [player objectForKey:@"six"], 
    [player objectForKey:@"batsman_name"], [player objectForKey:@"wicket_info"]); 

...等

+0

非常感謝大家...... !!!我解決了我的問題! – spaleja 2011-02-28 05:52:24

+0

不客氣。選擇一個答案並將你的問題標記爲已回答。 – robertvojta 2011-02-28 10:13:02

0

這裏是如何得到的迴應爲一個數組。但主要問題是:您想要對數據做什麼? ;)

SBJsonParser *parser = [[SBJsonParser alloc] init]; 
NSString * response = [request responseString]; 
NSMutableArray *array = [parser objectWithString:response error:nil]; 
NSMutableArray *match = [array valueForKey:@"match_details"]; 
NSMutableArray *players = [array valueForKey:@"players"]; 

// This should display your players name 
for(id player in players) { 
    NSLog(@"Player name: %@", [(NSDictionary *)player valueForKey:@"batsman_name"]); 
}