Вопрос по json, xcode, ios5 – Xcode, как разобрать объекты Json
Мне удается получить 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
ответ
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
Error: User Rate Limit Exceeded
Friday
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
posts
Error: User Rate Limit Exceeded