2012-12-14 3 views
2

어떻게이 json을 NSJSONSerialization으로 변환합니까?ios5 중첩 json 구문 분석

{ 
    "messages":{ 
     "message":{ 
     "user":"value", 
     "pass":"value", 
     "url":"value" 
     } 
    } 
} 
+0

것 같습니다. –

답변

5
NSError* error; 
NSDictionary *dit = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:&error]; 
if (!error) { 
    //Get values from this dict using respective keys 
    NSDictionary *msgs = [dict objectForKey:@"messages"]; 
    NSDictionary *msg = [msgs objectForKey:@"message"]; 
    NSString *user = [msg objectForKey:@"user"]; 
    NSString *pass = [msg objectForKey:@"pass"]; 
    NSString *url = [msg objectForKey:@"url"]; 
} 
else { 
    //Your error message 
} 
+0

@ 루카 Zap 내 대답을 편집했습니다. –

+0

고마워요, 정말 고마워요! – LuZa

+0

@InderKumarRathore 선생님, 오늘 하루 구원하셨습니다 :) – death7eater

1

새로운 문자 구문 예 :

char *jsonChars = "{\ 
    \"messages\":{\ 
     \"message\":{\ 
      \"user\":\"value\",\ 
      \"pass\":\"value\",\ 
      \"url\":\"value\"\ 
     }\ 
    }\ 
}"; 

NSData *responseData = [NSData dataWithBytes:jsonChars length:strlen(jsonChars)]; 
NSError* error; 
NSDictionary *dit = [NSJSONSerialization JSONObjectWithData:responseData options:NSJSONReadingMutableContainers error:&error]; 
NSLog(@"dit: %@", dit); 
NSLog(@"dit: messages:message:user = %@", dit[@"messages"][@"message"][@"user"]); 

NSLog 출력 :

DIT { 메시지 = { 메시지 = { 패스 = 값; url = value; user = value; }; }; }

DIT : 메시지 : 메시지 : 이미 JSON이 같은 사용자 = 값은