2012-04-23 2 views
2

매우 간단해야하지만 제대로 작동하지 않습니다.iOS JSON NSDictionary로 구문 분석 한 다음 NSArray를 SBJson으로 구문 분석하십시오.

Json 응답은 ([ "id": "1", "x": "1", "y": "2"}, { "id": 2, "x" "Y": "4"}])

NSString *response = [request responseString]; 
//response is ([{"id":"1", "x":"1", "y":"2"},{"id":2, "x":"2", "y":"4"}]) 

SBJSON *parser = [[[SBJSON alloc] init] autorelease]; 

NSDictionary *jsonObject = [parser objectWithString:response error:NULL]; 
// jsonObject doesn't have any value here..Am I doing something wrong? 

NSMutableArray Conversion = [jsonObject valueForKey:NULL]; 
//Even if I get the value of jsonObject. I don't know what to put for valueForKey here 

변환 그들 각각 같은 있어야 두 NSObjects..and가 없을시

ID : 1 X : Y 1 : 2

id : 2 x : 2 y : 4

답변

6

JSON 파서는 NSDictionary가 아닌 응답 문자열에서 NSArray를 생성합니다. SBJSON을 포함한 JSON 파서는 파싱중인 json의 내용에 따라 배열 객체 또는 사전 객체를 반환합니다.

NSArray *jsonObject = [parser objectWithString:response error:nil]; 

당신은 다음 배열의 개별 항목에 액세스 할 수 있습니다 (배열 요소 유형있는 NSDictionary이 될 것입니다) 각 항목의 속성을 얻을 수 valueForKey:를 사용합니다.

NSDictionary *firstItem = [jsonObject objectAtIndex:0]; 
NSString *theID = [firstItem objectForKey:@"id"]; 
+0

내가 브레이크 포인트와 함께 확인하고 .. 시도와 jsonObject..It에 대한 잘못된 CFArrayRef을 얻었다 된 JSONObject 아무것도 못하고 것 같다 파서 가지고 JSON 값을 볼 수 .. – MomentH

+0

나는 그것이 ... 당신의 대답은 완벽했다 가지고 :)하지만 Json 반환 나는 파서가 그것을 처리 할 수 ​​없다는 것을 가지고있다. 나는 응답 = [응답 stringByReplacingOccurrencesOfString : @ "("withString : @ ""]; 및 응답 = [responseStringByReplacingOccurrencesOfString : @ ")"withString : @ ""]; ** 그리고 나서 완벽하게 작동합니다 .. 감사합니다. :) 한 번에 '('와 ')를 제거하는 쉬운 방법이 있습니까? – MomentH