2012-12-03 2 views
3

나는 NSJSONSerialization을 처음 사용하고 있습니다. 나는 다른에 라벨과 병원 이름에 타이밍을 통과해야NSJSON 직렬화

{ 
    "appointment": [ 
    { 
     "w1": "Mallya Hospital", 
     "w2": "Nagarjuna Hospital", 
     "w3": "Mallige  Hospital", 
     "w4": "Mallya Hospital", 
     "t1": [ 
     "08:00 - 08:25", 
     "08:25 - 08:50", 
     "08:50 - 09:15", 
     "09:15 - 09:40" 
     ], 
     "t2": [ 
     "14:00 - 14:05", 
     "14:05 - 14:10", 
     "14:10 - 14:15", 
     "14:15 - 14:20", 
     "14:20 - 14:25", 
     "14:25 - 14:30", 
     "14:30 - 14:35", 
     "14:35 - 14:40", 
     "14:40 - 14:45", 
     "14:45 - 14:50", 
     "14:50 - 14:55", 
     "14:55 - 15:00", 
     "15:00 - 15:05", 
     "15:05 - 15:10", 
     "15:10 - 15:15", 
     "15:15 - 15:20", 
     "15:20 - 15:25", 
     "15:25 - 15:30", 
     "15:30 - 15:35", 
     "15:35 - 15:40", 
     "15:40 - 15:45", 
     "15:45 - 15:50", 
     "15:50 - 15:55" 
     ], 
     "t3": [ 
     "14:00 - 14:35", 
     "14:35 - 15:10", 
     "15:10 - 15:45" 
     ], 
     "t4": [ 
     "16:30 - 17:15", 
     "17:15 - 18:00" 
     ], 
     "tp1": "25", 
     "tp2": "5", 
     "tp3": "35", 
     "tp4": "45", 
     "ts1": "8:00 - 10:00", 
     "ts2": "14:00 - 16:00", 
     "ts3": "14:00 - 16:00", 
     "ts4": "16:30 - 18:30", 
     "offdays": "4-6" 
    } 
    ] 
} 

: 여기 내 브라우저 출력입니다. 위에서 주어진 타이밍을 얻기 위해 NSJSONSerialization을 어떻게 사용할 수 있습니까?

답변

1

먼저

NSData *data = [stringData dataUsingEncoding:NSUTF8StringEncoding]; 

는 데이터가하는 quick beautifier 당신의 데이터 구조를 다음 보여됩니다 JSON 객체로 구성 될 것입니다 방법을 시각화하기 위해 직렬화 할 수있는 데이터로 문자열/파일을 변환해야합니다 Dictionary-> 배열 (1 개 요소) -> Dictionaries-> 배열이/값

예를 들어, 특정 시간에 액세스하려면 : 당신의 응답 .. IC에 대한

NSDictionary *jsonObject = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingMutableContainers error: &e]; //Options can be simply 0 

NSArray *t1 = jsonObject[@"appointment"][0][@"t1"]; 
+0

감사 "배열 첨자가 아닌 정수"를 표시하는 오류가 발생했습니다. – user1871889

+0

여기에 내 코드가 있습니다. --- NSURL * urlBook = [NSURL URLWithString : strBook]; NSData * dataBook = [NSData dataWithContentsOfURL : urlBook]; jsonBookDict = [NSJSONSerialization JSONObjectWithData : dataBook 옵션 : nil 오류 : nil]; NSArray * t1 = jsonBookDict [@ "약속"] [0] [@ "t1"]; NSArray * keys; keys = [jsonBookDict allKeys]; 위한 (0 = 1을 나타내는 int i가 <= 키 카운트] -1-; 내가 ++) { 있는 NSArray * arrayBook = [jsonBookDict valueForKey : 키 objectAtIndex : I] valueForKey @ "T2"]; NSString * strBook = [배열 북 objectAtIndex : i]; – user1871889

+0

즉, 배열에 액세스하기 위해 정수 이외의 것을 사용한다는 의미입니다. JSON 객체를 두 번 확인하여 배열에 대해 사전을 잘못 입력하지 않았는지 확인하십시오. – John