2012-04-23 3 views
0

내 JSON 응답은아이폰 OS - NSArray를 중첩 NSDictionaries

[{"id":"1", "x":"1", "y":"2"},{"id":2, "x":"2", "y":"4"}] 

입니다 그리고 제가 된 JSONObject가 어떻게 할 수있는 두 개의 NSDictionary에 .. 을 가진 배열이라고 생각이 시점에서

NSString *response = [request responseString]; 
SBJSON *parser = [[SBJSON alloc] init]; 
NSArray *jsonObject = [parser objectWithString:response error:nil]; 

했다 NSDictionary 대신 NSArray가 두 개있는 jsonObject를 만드시겠습니까? 이렇게하는 가장 좋은 방법은 무엇입니까? 나는 중첩 된 NSDictionary를 NSArray로 변환해야한다고 생각한다.

+0

사전에서 더 간단하게 변환이 없습니다 :

여기
NSMutableDictionary *json = [NSJSONSerialization JSONObjectWithData:data options:0 error:&e]; 

애플 문서입니다 :

NSError *e; NSArray *jsonObject = [NSJSONSerialization JSONObjectWithData:data options:0 error:&e]; for (NSDictionary *dict in jsonObject) { NSLog(@"json data:\n %@", dict); // do stuff } 

다른 방법으로,이 같은 변경 가능한 용기를 반환 할 수 배열 - 서로 다른 의미의 데이터 구조입니다. 전환을 원하는 방식을 정의해야하며 일부 의미 (예 : 주문)를 추가/삭제해야 할 가능성이 있습니다. –

답변

1

Foundation 프레임 워크에서 NSJSONSerialization 클래스를 사용합니다.

JSONObjectWithData 메소드를 사용하면 데이터를 최상위 레벨에 저장하려는 컨테이너 유형을 반환합니다. 예를 들어 :

NSJSONSerialization