2013-01-16 3 views
1

JSON 파일에서 NSDictionary를 만들 수 있습니다. 문제는 중첩 된 JSON 문자열을 처리하는 방법입니다. 예를 참조하십시오NSDictionaries 및 Nested JSON

{ 
"data": [ 
    { 
    "id": "270639882984792_306265986160413", 
    "from": { 
     "category": "Non-profit organization", 
     "name": "My Facebook Page", 
     "id": "270639882984792" 
    }, 

을 그래서이 대규모 JSON 파일의 일부이지만, 어떻게 내가에서 "이름"키를 호출 할 수 있도록 키 "에서"를, 그것을 설정 할 - 내가 아는 방법을 호출 "데이터"키의 "id"키. 그러나 원하는 키는 레벨이 더 깊습니다. - 사전에

감사

편집 :-) 여기에 내가 작업을 시작 일부 아이폰 OS 코드 :

NSDictionary *items = [json objectForKey:@"data"]; 

NSArray *items2 = [items objectForKey:@"from"]; 
// NSDictionary *item = [items objectAtIndex:1]; 

NSMutableArray *story = [NSMutableArray array]; 

for (NSDictionary *item in items2) 
{ 

    if([item objectForKey:@"name"] || [item objectForKey:@"name"] != nil || [[item objectForKey:@"name"] length]>0){ 
     [story addObject:[item objectForKey:@"name"]]; 
    } 

    NSLog(@"ITEM - %@", [item objectForKey:@"name"]); 

} 
+0

한 번에 한 단계 씩 양파를 껍질을 벗기십시오. 당신이하고있는 일을 이해하면 valueForKeyPath와 같은 물건을 사용할 수 있지만 먼저 "longhand"를하는 것이 가장 좋습니다. –

답변

2

을보십시오이 : 그냥 이름을 원하는 경우

NSDictionary* data= json[@"data"]; 
NSDictionary* from= [data[0] objectForKey: @"from"]; 
NSString* name= from[@"name"]; 

괜찮습니다. 대신 모든 데이터가 필요하면 모든 사전 항목에 대한 값을 보유 할 수있는 객체를 만드는 것이 좋습니다. "id"및 "category"에 액세스하는 방법은 다른 키를 사용하는 방법과 동일합니다.

+0

응용 프로그램이 다운되고 다음과 같은 오류가 발생합니다. - [__ NSCFArray objectForKey :] : 인스턴스로 전송 된 인식 할 수없는 선택 자 –

+0

미안 데이터가 배열로 표시되지 않았습니다. –

+0

은 json [@ "data"]입니다. [json objectForKey : @ "data"]의 속기. ? 죄송합니다. 그런 식으로 보셨습니다. –