Вопрос по json, xcode, ios5 – Xcode, как разобрать объекты Json

1

Мне удается получить Json для моего сервера и выполнить синтаксический анализ в Xcode, затем я могу преобразовать Json в объект и загрузить свой uitableview, проблема в том, что у моего Json 7 объектов ...

Вы можете увидетьполный Json здесь

<code>2012-05-05 10:45:02.727 passingdata[63856:fb03] array : {
    posts =     {
        Friday =         (
                        {
                GymClass =                 {
                    "CLASS-TYPE2" = "";
                    "CLASS_LEVEL" = "Intro/General";
                    "CLASS_TYPE" = "Muay Thai";
                    "DAY_OF_WEEK" = Friday;
                    TIME = "13:00 - 14:30";
                };
            }
        );
        Monday =         (
                        {
                GymClass =                 {
                    "CLASS-TYPE2" = "Fighters Training";
                    "CLASS_LEVEL" = "Fighters/Advanced/Intermediate";
                    "CLASS_TYPE" = "Muay Thai ";
                    "DAY_OF_WEEK" = Monday;
                    TIME = "09:30 - 11:00";
                };
            }, ......
</code>

с помощью этого кода я могу получить пятницу & quot; пятницу & quot; и отображать информацию о GymClass & quot; GymClass & quot; на моем столе

<code>- (void)fetchedData:(NSData *)responseData { //parse out the json data

    searchResults2 = [NSMutableArray arrayWithCapacity:10];

    NSError* error;
    NSDictionary* dictionary = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];

    NSLog(@"array : %@",dictionary);
    NSArray *array = [[dictionary objectForKey:@"posts"] objectForKey:@"Friday"]; // retrieve that Day Gym Classes

    if (array == nil) {
        NSLog(@"Expected 'posts' array");
        return;
          }

    for (NSDictionary *resultDict in array) 
    {
        SearchResult *searchResult3;
        searchResult3 = [self parseTrack:resultDict];

        if (searchResult3 != nil) {
           [searchResults2 addObject:searchResult3];
        }        
    }    
    [self.tableView reloadData];
}

- (SearchResult *)parseTrack:(NSDictionary *)dictionary
{
    SearchResult *searchResult1 = [[SearchResult alloc] init];

    searchResult1.classType= [[dictionary objectForKey:@"GymClass"] objectForKey:@"CLASS_TYPE"];
    searchResult1.classLevel= [[dictionary objectForKey:@"GymClass"] objectForKey:@"CLASS_LEVEL"];

    NSLog(@"parse track = %@", searchResult1);
    return searchResult1;
}
</code>

Я могу получить элементы за один день, но как мне получить элементы за каждый день (понедельник, вторник ... солнце), чтобы я мог отображать их на столе по разделам?

Спасибо за вашу помощь..

Ваш Ответ

1   ответ
8

NSDictionary* dictionary = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];

NSLog(@"array : %@",dictionary);
NSArray *array = [[dictionary objectForKey:@"posts"] objectForKey:@"Friday"]; // retrieve that Day Gym Classes

Вен может начать оттуда, чтобы получить только объектposts:

NSDictionary* dictionary = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
NSDictionary *posts = [dictionary objectForKey:@"posts"];

//Iterate over posts

for (NSArray *aDay in posts){
     //Do something 
     NSLog(@"Array: %@", aDay);
}

Здесь я использую быстрое перечисление для перебора словаря, вы должны проверить этоВот.

Error: User Rate Limit Exceeded HernandoZ
Error: User Rate Limit ExceededFridayError: User Rate Limit Exceeded
Error: User Rate Limit Exceeded HernandoZ
Error: User Rate Limit Exceeded HernandoZ
Error: User Rate Limit ExceededpostsError: User Rate Limit Exceeded

Похожие вопросы