2013-01-09 2 views
2

궁극적 인 실수에 대해 용서해 주시겠습니까?이 질문은 내 첫 번째 질문입니다.NSJSONSerialization에 반품이 없음

이 웹 사이트에 몇 가지 주제를 읽은 후, like this one 먼저 내가 방법을 설명하는 사용하려고합니다하지만 여전히 :-(@ 작동하지 않습니다

내 .json 파일이

{ "speakers" : 
    [ 
    { 
    "name":"Value", 
    "picture": "URL VALUE", 
    "business":"VALUE", 
    "desc":"VALUE", 
    "twitter": "URL VALUE" 
    }     
    { 
      ... 

    } 
    ] 
} 
과 같은

내가 먼저 스피커 속성
가 포함 된 사전 있습니다

그래서이 내 추론이다배열, 필드가 일부 사전, , "업무", ... attr에 포함되어 있습니다.

NSString *URLStr = @"URLofMyJsonFile"; 

NSURLRequest *JSONRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithString:URLStr ]]]; 

NSData *JSONData = [NSURLConnection sendSynchronousRequest:JSONRequest returningResponse:nil error:nil]; 

NSError *parsingError = nil; 

NSDictionary *speakerDictionnary = [NSJSONSerialization JSONObjectWithData:JSONData options:0 error:&parsingError]; 

NSArray *speakersArray = [speakerDictionnary objectForKey:@"news"]; 

for (NSDictionary *oneSpeaker in speakersArray) { 
    NSLog(@"The speakers's name is %@", [oneSpeaker objectForKey:@"name"]); 
    NSLog(@"The speakers's business is %@", [oneSpeaker objectForKey:@"business"]); 
    NSLog(@"The speakers's desc is %@", [oneSpeaker objectForKey:@"desc"]); 
} 

편집 :

그래서,이 내 OBJ-C 코드는 내가 더미 내 스크립트의 오른쪽 URL을 remplace

답변

3

귀하의 JSON은 사이에 쉼표가있을 필요가 유효하지 않습니다 개별 연설 사전.

{ "speakers" : 
    [ 
    { 
     "name":"Value", 
     "picture": "URL VALUE", 
     "business":"VALUE", 
     "desc":"VALUE", 
     "twitter": "URL VALUE" 
    } <=== MISSING COMMA HERE  
    { 
     ... 
    } 
    ] 
} 
+0

감사합니다, 내 json 파일에서 기대하고 사방을 수색했다 ... –

0

omz가 언급 한대로 json이 잘못되었습니다. 당신은 코드 아래에 시도 할 수 있습니다 :

[NSURLConnection sendAsynchronousRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.appios.fr/client/takeoff/app/script/jsonSpeaker.json"]] queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *reponse,NSData *data,NSError *error){ 
     if (!error) { 
      NSError *jsonError; 
      id json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&jsonError]; 
      NSArray *speakersList = [json objectForKey:@"speakers"]; 
      [speakersList enumerateObjectsUsingBlock:^(NSDictionary *dict,NSUInteger idx,BOOL *Stop){ 
       NSLog(@"Name : %@",[dict objectForKey:@"name"]); 
      }]; 
     } 

    } ];