2012-05-02 4 views
0

안녕하세요, JSON 역 직렬화에 문제가 있습니다.SBJson 역 직렬화 문제

SBJson을 사용하고 있습니다. 데이터는 .net webservice에서 반환됩니다.

반환 된 JSON 지금까지 다음 코드

-(void) dataLoaded:(NSData*)data { 

    NSString* jsonString = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease]; 

    NSDictionary *jsonObject = [jsonString JSONValue];  

     NSLog(@"data : %@", [jsonObject valueForKey:@"result"]); 
} 

다음 줄을 사용하여 가지고

{ 
    "id": "1", 
    "result": [ 
     { 
      "questionID": 21, 
      "question": "What is the secret of eternal life?" 
     }, 
     { 
      "questionID": 20, 
      "question": "What is the meaning of life?" 
     } 
    ] 
} 

(단축)되어 [된 JSONObject valueForKey은 "결과"@] 다음을 반환 데이터

(
     { 
     question = "What is the secret of eternal life?"; 
     questionID = 21; 
    }, 
     { 
     question = "What is the meaning of life?"; 
     questionID = 20; 
    } 
) 

어떻게 데이터를 배열로 가져 옵니까?

Json을 처음 사용하기 때문에 어떤 일이 벌어지는 지 완전히 알 수 없습니다.

감사 믹

답변

1

당신 있습니다이 배열에 대한 포인터를 만들려면이 같은 것을 사용할 수 있습니다 ... 이미 다시 배열을 받고 : 일부 후 (

NSDictionary *jsonObject = [jsonString JSONValue]; 
NSArray *myJsonArray = [jsonObject valueForKey:@"result"]; 

편집 댓글)

[jsonObject valueForKey:@"result"]NSLog 자신이 게시 한 것을 인쇄합니다. 그 물체는 NSArray입니다.

당신은 계산과 같이 로그인 할 수 있습니다합니다 (%d주의) : 답장을

int c = [myJsonArray count]; 
NSLog("My array's count is: %d", c); 
+0

감사합니다, 나는 시도 그 다음 'code'NSArray * 질문 = [된 JSONObject valueForKey를 사용하여 이전 버전 : "결과 @ "]; '코드'내가 애플 리케이션 폭격 배열 크기를 얻을려고 때. – user551353

+0

'폭탄'이란 무엇을 의미합니까? 어떻게 사이즈를 얻으려고 했습니까? – Alladinian

+0

죄송합니다, 나는 추락했다, 나는'int tmp = [questions count];' – user551353