2013-10-18 5 views
-4

저에게 잘 보이는 것처럼 보이는 JSON을 구문 분석하려고하는데, NSJSONSerializationNSArray을 반환하기 때문에 동일한 AFAIK를 생각하지 않습니다.NSJSONSerialization이 JSON을 구문 분석하지 않습니다.

NSData* gamesData = [NSData dataWithContentsOfURL: 
         [NSURL URLWithString:@"http://s42sport.com/polarice/json/games.json"] 
         ]; 

    NSDictionary* json = nil; 
    if (gamesData) { 
     json = [NSJSONSerialization 
       JSONObjectWithData:gamesData 
       options:kNilOptions 
       error:nil]; 
     NSLog(@"%d",json.count); 
    } 

질문은이

json으로 문제점은 무엇입니까 :

이 내 코드? NSSerialization이 NSDictionary를 반환하지 않는 이유는 무엇입니까?

편집 : 예, 방금 [...] 대 {...}에 대해 배웠습니다. 고맙습니다.

+3

JSON은 배열입니다. 그것이 사전이라는 기대 이외에는 아무런 문제가 없습니다. – rmaddy

+0

내 코드를 확인해 주셔서 감사합니다 ... – Jitendra

+1

은 기본 JSON 구문을 살펴 보지 않으신 것처럼 보입니다. – hawk

답변

2

에 대한 사용은 구문 분석 반면 NSDictionnary이 객체를 사용해야 당신이 방법에 의해 json.

NSURL * url=[NSURL URLWithString:@"http://s42sport.com/polarice/json/games.json"]; 

NSData * data=[NSData dataWithContentsOfURL:url]; 

NSError * error; 

NSMutableDictionary * json=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error]; 

NSLog(@"%@",json); 

NSArray * array1=[json valueForKey:@"c"]; 

NSLog(@"%@",array1); 

이 코드를 사용해보십시오. 이것은 분명히 당신을 위해 작동합니다.

+0

그래, 그건 옵션 때문에 : NSJSONReadingMutableLeaves? –

+0

해피 코딩 ..... – Jitendra

+0

코드의 차이점은 무엇입니까? NSmutableDictionary를 반환하도록합니다. 난 NSMutableArray를 반환 할 줄 알았는데 –

0

나열된 JSON 파일은 배열 (대괄호로 시작하고 끝남)이므로 Objective-C는이를 NSArray 루트 객체에 반영합니다.

+0

예, 방금 배웠습니다. 고맙습니다. –

1

있는 NSArray는 JSON 배열

NSArray* json = nil; 
if (gamesData) { 
    json = [NSJSONSerialization 
      JSONObjectWithData:gamesData 
      options:kNilOptions 
      error:nil]; 
    NSLog(@"%d",json.count); 
}