2011-02-25 49 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"]); 
}