2013-08-02 3 views
-1

SBJson을 사용하고 있는데 하나의 값으로 하나의 키가있을 때이를 해결하는 방법을 알고 있지만 키와 값이 2 개인 경우 어떻게 작동합니까? 디코드 JSON 문자열

이 내가 뭔가 마지막 줄에 충돌

SBJsonParser *parser = [[SBJsonParser alloc] init]; 
    NSDictionary *responseDict = [parser objectWithString:responseString]; 
    NSString *decodedJSON = [responseDict objectForKey:@"{\"ID\":\"Color\"}"]; 

을 시도한 것입니다

[{"ID":"1","Color":"Blue"},{"ID":"2","Color":"Red"},{"ID":"3","Color":"Green"}] 

디코딩 할 필요가있는 문자열입니다.

+0

디코딩 된 JSON에 어떤 결과가 있습니까? 당신이 반응을 요구하는 것처럼 보입니다 .Dict는 2 개의 키에 대한 객체 값을 한번에 또는 무언가로 요청합니다. 단순히 작동하지 않습니다. 또한 첫 번째 코드에 배열 JSON 문자열을 표시 했으므로 responseDict는 아마도 NSArray입니다. 반환 유형의 responseDict를 확인한 다음 디코딩 된 JSON을'@ "1 : Blue"'또는 무엇과 같은 문자열처럼 보이려고하는지 자세히 설명하십시오. – jxpx777

답변

2

JSON 개체는 NSArrayNSDictionary입니다. 배열을 반복하거나 인덱스를 사용해야합니다.

[responseDict objectAtIndex:0]; 

당신이 그들 모두를 반복 할 같은 것을 사용하는 경우 (예를 들어, 순서대로 인쇄하기) :

for(NSDictionary* e in responseDict) { 
    NSLog(@"%@", e); 
} 
예를 들어, 첫 번째 요소 ( {"ID":"1","Color":"Blue"})를 얻을 수