2013-02-03 3 views
0

iOS 개발 및 목표 -c에 매우 새로운 기능입니다. ( Bannana, 애플 :키없이 NSMutableDictionary 값에 액세스합니까?

2013년 2월 3일 19 : 15 : 37.081 TestConnection [24510 : C07] 사전

-(NSMutableArray *)fetchDatabaseJSON{ 
    NSURL *url = [NSURL URLWithString:@"http://www.ios.com/ios/responseScript.php"]; 
    NSError *error = nil; 
    NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
    NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:NULL error:&error]; 
    //jsonArray = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error]; 
    //NSLog(@"Array: %@",[jsonArray objectAtIndex:0]); 
    jsonDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error]; 
    NSLog(@"Dictionary: %@", jsonDictionary); 
    return jsonArray; 
} 

는 이제 NSLog이 보여줍니다 : 나는 다음과 같은 방법을 SomeCheese)

내가 알고있는 것으로부터 사전에있는 것이 모두 키 - 값을 가지고 있지 않다는 것을 알았습니다. 어떻게 이럴 수있어? 어떻게 해결할 수 있습니까? 사전 작업을 쉽게 할 수있는 키를 갖고 싶습니다.

감사합니다,

답변

1

JSONObjectWithData 당신이 그것을주는 JSON 데이터에 따라 한있는 NSArray 나 NSDictionary에 반환 할 수 있습니다. JSON 문자열이 배열 인 경우 NSArray가 있습니다. JSON 데이터가 사전 인 경우 NSDictionary를 가져옵니다.

JSON 데이터 (귀하의 data 변수)를 문자열로 변환하고 NSLog로 인쇄하십시오. 당신이를 생성하는 서버 코드를 변경할 수 있다면 당신이 그것을 인쇄하여 JSON 배열을 참조하는 경우, 당신은 단순히 거기에 .. 사전이없는

NSString *myString = [[NSString alloc] initWithData:myData encoding:NSUTF8StringEncoding]; 

:있는 NSString에있는 NSData 변환하려면 같은 것을 사용 JSON, 당신은 그것을 바꿀 수 있습니다.

내가 알아챈 또 하나의 점은 반환 컨테이너가 변경 가능하다고 가정합니다. 내가 잘못 본 것이 아니라면,이를 얻으려면 JSONObjectWithData의 options 매개 변수에 NSJSONReadingMutableContainers과 같은 옵션을 사용해야합니다.

마지막 팁, 당신은 당신이있는 NSArray (또는 NSDictionary에)가있는 경우, 코드 검사 같은 것을 사용하려는 경우 :

if ([obj isKindOfClass:[NSArray class]]) {...} 
관련 문제