2011-10-11 2 views
0

I는 서버로부터받은 응답은 같은 포맷 :이 SBjson 코드에서 사용되는 객체의 수를 최소화 할 수 있습니까?

{ 
    "Data":{ 
     "Key": "Value" 
     ... 
    }, 
    "Key": "Value" 
    ... 
} 

는 그러나, 나는 "데이터"아래의 요소에만 관심이 있습니다.

SBJsonParser *parser = [SBJsonParser new]; 
NSString *responseString = [request responseString]; 
NSDictionary *responseData = [parser objectWithString:responseString]; 
NSString *infoString = [responseData objectForKey:@"Data"]; 
NSDictionary *infoData = [parser objectWithString:infoString]; 

명시 적 5 개체를 선언하지 않고 같은 일을 수행 할 수있는 방법이 있나요 : 여기 내가 현재 사용하고 코드입니다? 내가 사용해야 할 짧은 손의 감각을 찾고 있습니다.

답변

1

마지막 두 줄이 잘못되었습니다. "Data"은 실제로는 NSDictionary이므로 두 번 구문 분석 할 필요가 없습니다.

또한 대다수의 objective-C 프로그래머는 반환 값이 안전하다는 것을 알고있는 곳에서 호출을 중첩합니다. 따라서 추가 검사가 필요하지 않습니다. 예를 들어, 이것은 나에게 더 자연스러운 구현을 볼 것이다 : 나는 SBJSON 함께 제공 NSObject의의 범주에서 편리한 메소드 JSONValue을 사용하고

NSDictionary *responseDictionary = [[request responseString] JSONValue]; 
NSDictionary *infoData = [responseDictionary objectForKey:@"Data"]; 

참고.