2012-02-10 4 views
1

이 데이터를 사용하여 json-parser에 다음을 입력하십시오 : http://mapadosradares.com.br/api/get_initial_load이 오류를 발생시킵니다 : 토큰 '배열의 시작'이 가장 바깥 쪽 배열 내가 JSON은 완벽하게 괜찮 말할 수있는 지금까지json-framework - 가장 외부의 배열 또는 객체 다음에 '배열의 시작'토큰이 필요하지 않습니다.

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { 
    NSLog(@"Connection didReceiveData of length: %u", data.length); 

    // Printing the received data 
    size_t length = [data length]; 
    unsigned char aBuffer[length]; 
    [data getBytes:aBuffer length:length]; 
    //aBuffer[length - 1] = 0; 
    NSLog(@"\n\n\n\n%s\n\n\n\n", aBuffer); 

    SBJsonStreamParserStatus status = [parser parse:data]; 

    if (status == SBJsonStreamParserError) { 
     NSLog(@"Parser error: %@", parser.error); 

    } else if (status == SBJsonStreamParserWaitingForData) { 
     NSLog(@"Parser waiting for more data"); 
    } 
} 

: 또는

여기 내 코드입니다 오브젝트. 이견있는 사람?

UPDATE :

- (void) getInitialLoad 
{ 
    adapter = [[SBJsonStreamParserAdapter alloc] init]; 
    parser = [[SBJsonStreamParser alloc] init]; 

    adapter.delegate = self; 
    parser.delegate = adapter; 

    NSString *url = @"http://mapadosradares.com.br/api/get_initial_load"; 
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url] 
              cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; 
    connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 
} 

답변

2

가 제대로 요청 사이의 파서를 초기화하는 :

여기 파서 initalization입니까? 코드를 표시하지 않았지만 파서를 통해 두 번의 연속적인 호출을 실행하면 예상 할만한 오류가있는 것처럼 보입니다.

덧붙여서 피드의 출력을 우수한 JSON 파서를 통해 http://jsonlint.com에 달아 보았는데 문제가없는 것으로 보입니다.

+0

파서 초기화로 내 질문을 업데이트했습니다. 다른 요청은 다른 파서가 처리합니다. 그들은 국가를 공유 할 수 있습니까? – Raphael

+0

이 객체는 위임자 인 NSURLConnection을 초기화하고 시작하는 유일한 곳입니까? 연결 시작 부분에서 로그 문을 수정 해보십시오. didReceiveData : 연결 개체의 주소를 인쇄합니다. 파서와 대화하는 연결이 두 개 이상 있으면 아마 그게 문제 일 것입니다. –

+0

나는 그것을 시도 할 것이다. 그러나 나는 데이터가 올바르게 인쇄 된 이후로 그것이 원인이라고 믿지 않는다. – Raphael