简体   繁体   English

解析JSON层次结构

[英]Parsing JSON hierarchy

I'm still trying (I already asked a few question about this) to parse my own JSON file. 我仍在尝试(我已经对此问了几个问题)解析自己的JSON文件。 Here is my JSON : 这是我的JSON:

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

With help of community, I've made this : 在社区的帮助下,我做到了:

- (void) viewDidLoad
{
    [super viewDidLoad];


     dispatch_async (kBgQueue, ^{
    NSData* data = [NSData dataWithContentsOfURL:lienAlbumsVideo];
    [self performSelectorOnMainThread:@selector(fetchedData:)withObject:data waitUntilDone:YES];
    });
}
- (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"];

     NSMutableArray *album_titre = [NSMutableArray new];
     NSMutableArray *album_photo = [NSMutableArray new];
     NSMutableArray *album_videos = [NSMutableArray new];

     for( NSDictionary *elementOnRoot in album )
    {
        [album_titre addObject:elementOnRoot[@"album_titre"]];
        [album_photo addObject:elementOnRoot[@"album_photo"]];
        [album_videos addObject:elementOnRoot[@"album_videos"]];
    }

     NSLog(@"%@", [album_titre objectAtIndex:0]);
     NSLog(@"%@", [album_videos objectAtIndex:1]);
     NSLog(@"%@", album_photo);

}

Now, I'm a bit mixed up with structure. 现在,我对结构有些困惑。 My question is how (using my actual Xcode) can I have a list (NSArray or dictionary) of "titre_video", "duree_video", "photo_video" and "lien_video"? 我的问题是如何(使用我的实际Xcode)获得“ titre_video”,“ duree_video”,“ photo_video”和“ lien_video”的列表(NSArray或词典)?

Thank you for your help and sorry for my basic xcode level... 感谢您的帮助,对于我的基本xcode级别感到抱歉。

Nicolas 萨科

 for( NSDictionary *albumDic in album )
{
    for( NSDictionary *album_videosDic in albumDic[@"album_videos"])
    {
        [album_titre addObject:album_videosDic[@"titre_video"]];
        [album_videos addObject:album_videosDic[@"duree_video"]];
        [album_photo  addObject:album_videosDic[@"photo_video"]];
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM