Как обработать ответ JSON с помощью iPhone SBJSON? - PullRequest
2 голосов
/ 25 февраля 2011

Я получаю ответ от моего веб-сервиса, указанный ниже?Может кто-нибудь есть идеи, как справиться с этим с помощью SBJSON?

{
"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
    }

}

Я сделал что-то вроде этого:

Ответы [ 2 ]

3 голосов
/ 25 февраля 2011

Импортируйте 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 голосов
/ 25 февраля 2011

Вот как получить ответ в виде массива. Но главный вопрос: что вы хотите сделать со своими данными? ;)

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"]);
}
...