Я могу разобрать часть моего файла JSON, но если я захочу углубиться в структуру, я потеряюсь. Вот мой JSON:Анализ информации JSON в Objective C (несколько уровней)
{
"album":[
{
"album_titre":"Publicité",
"album_photo":"blabla.jpg",
"album_videos":[
{
"titre_video":"Chauffage Compris",
"duree_video":"01'25''",
"photo_video":"chauffage.jpg",
"lien_video":"www.bkjas.jhas.kajs"
},
{
"titre_video":"NIFFF 2012",
"duree_video":"01'43''",
"photo_video":"nifff.jpg",
"lien_video":"www.bkjas.jhas.kajs"
}
]
},
{
"album_titre":"Events",
"album_photo":"bloublou.jpg",
"album_videos":[
{
"titre_video":"Auvernier Jazz",
"duree_video":"01'15''",
"photo_video":"auvernier.jpg",
"lien_video":"www.bkjas.jhas.kajs"
},
{
"titre_video":"NIFFF 2011",
"duree_video":"01'03''",
"photo_video":"nifff2011.jpg",
"lien_video":"www.bkjas.jhas.kajs"
}
]
},
{
"album_titre":"Culture",
"album_photo":"bilibl.jpg"
},
{
"album_titre":"Postproduction",
"album_photo":"bizoubzou"
}
]
}
И вот моя цель-с-код:
- (void)fetchedData:(NSData *)responseData {
NSError* error;
NSDictionary *document = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
if (document==nil)
{
NSLog(@"oops\n%@", error);
}
NSArray *album = document[@"album"];
for(NSDictionary *albumDictionary in album)
{
[album_titre addObject:albumDictionary[@"album_titre"]];
[album_photo addObject:albumDictionary[@"album_photo"]];
for(NSDictionary *album_videosDictionary in albumDictionary[@"album_videos"])
{
[titre_video addObject:album_videosDictionary[@"titre_video"]];
[duree_video addObject:album_videosDictionary[@"duree_video"]];
[photo_video addObject:album_videosDictionary[@"photo_video"]];
[lien_video addObject:album_videosDictionary[@"lien_video"]];
}
}
[self.tableView reloadData];
}
То, что я не могу добиться того, чтобы создать массив с содержит, например, все «titre_video» соответствующий «album_titre» : "Publicité". Поэтому он должен содержать «Chauffage Compris» и «Nifff 2012».
Я знаю, что это простой вопрос, но я искал какое-то время и все еще не в состоянии это сделать.
Спасибо, много.
Николя
Перейдите на сайт json.org и потратите 5-10 минут, чтобы изучить синтаксис JSON. (Это очень просто.) Затем, как мне хочется сказать, «очистить лук», по одному слою за раз. На данный момент избегайте «умных» конструкций, где вы погружаете несколько слоев глубоко в один оператор. Вместо этого присвойте каждому «слою» другую временную переменную, чтобы упростить ее отладку. (И ознакомьтесь с изменениями, которые происходят с JSON, когда он преобразован в NS-объекты и NSLoggeed - в частности NSArray использует символы '()' вместо '[]'.) –