Парсинг JSON: словарь в массиве - objective c

Max Soiferman

Вот так приходит json, dictionary в массиве. Нужно добавить все ключи из каждого значения 3602, 3603 и т.д.

{
"retrievedAt":"2017-04-20T04:45:40+04:00",
"data":{
"3602":{
"team_name":"Челси",
"team_id":"3602",
"total_points":"75",
"total_scored":"65",
"total_missed":"27",
"total_games":"32",
"total_wins":"24",
"total_draws":"3",
"total_loses":"5",
"goal_difference":"38"
},
"3603":{...},
"3606":{...},
"3607":{...},
"3608":{...},
"3609":{...},
"3610":{...},
"3614":{...},
"3615":{...},
"3616":{...},
"3619":{...},
"3621":{...},
"3661":{...},
"3909":{...},
"4448":{...},
"4450":{...},
"4463":{...},
"4524":{...},
"4538":{...},
"4628":{...}
}
}

Делал по-разному, и получается что распарсиваю только data, а все что находится в ней, не получается.

-(void) getTablefromServer:(void (^)(NSArray *))success
             onFailure:(void (^)(NSError *))failure{

[self.sessionManager GET:@"tournament-table"
              parameters:nil
                progress:nil
                 success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
                   //  NSLog(@"%@", responseObject);
                     NSMutableArray *array = [[NSMutableArray alloc]init];
                     if ([responseObject isKindOfClass:[NSDictionary class]]) {
                         if ([[responseObject objectForKey:@"data"] isKindOfClass:[NSArray class]])  {
                             for (NSDictionary *dict in [responseObject objectForKey:@"data"]) {
                                 for (NSDictionary *allTeamID in [dict valueForKey:@"3602"]) {
                                     TournamentTableModel *tournamentTableModel = [[TournamentTableModel alloc]initWithResponse:allTeamID];
                                     [array addObject:tournamentTableModel];
                                 }
                             }
                         }
                     }
                     if (success) {
                         success(array);
                     }
                 }
                 failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

                     if (failure) {
                         failure(error);
                     }

                 }];
}

и так пробовал

-(void) getTablefromServer:(void (^)(NSArray *))success
                 onFailure:(void (^)(NSError *))failure{

    [self.sessionManager GET:@"tournament-table"
                  parameters:nil
                    progress:nil
                     success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
                       //  NSLog(@"%@", responseObject);
                         NSMutableArray *array = [[NSMutableArray alloc]init];

                         // NSArray *teams = [responseObject valueForKey:@"data"];
                         for (NSString * key in [responseObject allKeys]) {

                             NSDictionary *dict = [responseObject objectForKey:key];
                             [array addObject:dict];}

                         if (success) {
                             success(array);
                         }
                     }
                     failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

                         if (failure) {
                             failure(error);
                         }

                     }];
}

@end
Max Soiferman 4 месяца назадСпасибо 1
2 чел.