2012-08-31 4 views
1

저는 이것 때문에 하루 종일 벽에 머리를 두들 겼습니다.SBJson은 NSDictionary에서 깊이 들어가지 않을 것입니다.

이 JSON blob을 구문 분석하려고합니다. here입니다.

NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding]; 

NSDictionary *results = [responseString JSONValue]; 

NSArray *allTweets = [[results objectForKey:@"response"] objectForKey:@"posts"]; 

을하지만, 나는이 수행하려고 할 때 : 그것은 나에게 오류를 제공하지 않습니다하지만 * URL이 "널 (null)"로 설정되어

NSURL *url = [NSURL URLWithString:[[[[aTweet objectForKey:@"posts"] objectForKey:@"photos"] objectForKey:@"original_size"] objectForKey:@"url"]]; 

내가 사용하고 무엇인가 .

나는 CFShow를 NSDictionary에 사용했지만 "photos"키가 JSON 형식이 아닌 일반 문자열로 나온 후에 모든 것이 나타납니다.

아무도 말해 줄 수 있습니까?

미리 도움 주셔서 감사합니다.

+0

"one-liners"가 좋음에도 불구하고 JSON을 처리 할 때 데이터 구조를 탐색하는 각 단계를 별도의 줄로 나누는 것이 현명합니다. 단계를 놓치고 디버깅하기가 훨씬 쉬워졌습니다. 효율성의 차이 (실제로있을 경우)는 무시할 수 있습니다. –

답변

0

시도해보십시오.

for (int i = 0; i < [[[results objectForKey:@"response"] objectForKey:@"posts"] count]; i++) { 
     NSLog(@"url data = %@",[[[[[[[results objectForKey:@"response"] 
     objectForKey:@"posts"] objectAtIndex:i] objectForKey:@"photos"] 
     objectAtIndex:0] objectForKey:@"original_size"] objectForKey:@"url"]); 
    } 
+0

예, 그게 전부입니다! objectAtIndex : 0 감사합니다. –