2013-08-16 4 views
-1

내가 이는 JSON 내가 구문 분석을 시도하고있다, JSON을 구문 분석 sbjson을 사용하여 인스턴스에 보내예외 'NSInvalidArgumentException는'- [__ NSArrayM objectForKey는 :] : 인식 할 수없는 선택기 0x752c670

{"R":"0","S":"","T":"","M":[{"C00":"2013-08-16 17:35:03"}]} 

을이입니다 내 코드 :

NSString *response = [self post:@"9903" content:payload state:@""]; 
NSDictionary *dict = [response JSONValue]; 
NSString *result = [dict objectForKey:@"R"]; 
NSLog(@"result=%@",result); 
if ([@"0" isEqualToString:result]) { 
    NSDictionary *msg = [dict objectForKey:@"M"]; 
    NSString *C00 = [msg objectForKey:@"C00"];//here the exception Statement 
    NSString *tokenString = [NSString stringWithFormat:@"%@",C00]; 
    NSLog(@"tokenString%@",tokenString); 
    return tokenString; 
}else { 
    return nil; 
} 

예외 로그 :

2013-08-16 17:45:44.902 VEP[4731:c07] -[__NSArrayM objectForKey:]: unrecognized selector sent to instance 0x7250300 
2013-08-16 17:45:44.903 VEP[4731:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM objectForKey:]: unrecognized selector sent to instance 0x7250300' 

무슨 일이 있어요 잘못된? 당신의 도움을 주셔서 감사합니다!

+3

오류 메시지를 읽고 JSON 데이터와 비교하십시오. –

+1

Btw : "JSON __NSArrayM objectForKey 인식 할 수없는 선택기"는 * 많은 * Google 히트 수를 기술하고 설명합니다. 정확히 당신 문제. –

답변

3

'M:'에는 사전뿐만 아니라 사전 배열이 포함되어 있기 때문입니다. 그러므로 다음과 같이 작성하십시오 :

NSDictionary *msg = [[dict objectForKey:@"M"] objectAtIndex:0]; 
+1

작동했습니다!하지만 여전히 혼란 스럽습니다. 세부 사항을 알려 주실 수 있습니까? 고마워요! – lgw150

+0

당신은 무슨 문제가 있습니까 ?? – iPatel

+0

글쎄, 나는 json의 정의를보고 명확하게 지금, 고마워, iPatel 이해! – lgw150