2013-06-27 5 views
1

내 자신의 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" 
          } 
          ] 
     } 
     ] 
} 

, 나는이를했습니다 :

- (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); 

} 

지금, 나는 구조로 혼합 좀 해요 여기 내 JSON이다. 내 질문은 어떻게 (내 실제 Xcode를 사용하여) "titre_video", "duree_video", "photo_video"및 "lien_video"의 목록 (NSArray 또는 사전)을 가질 수 있습니까?

는 JSON 구조를 파서에 의해 생성 된 오브젝트의 구조에 거의 정확하게 반영 ... 내 기본 엑스 코드 수준

니콜라스

+1

를 도와 주셔서 감사하고 죄송합니다. 구문을 이해하려면 json.org를 참조하십시오 (매우 간단하며 5 분 안에 모두 완료 할 수 있습니다). 구문을 읽는 방법을 알게되면 특정 양의 데이터를 얻기 위해 "양파 껍질 벗기기"가 매우 간단합니다. –

답변

2
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"]]; 
    } 
} 
+0

감사합니다 (마지막 코멘트를 남기지 마십시오). 그것은 위대한 작품! –