json-framework - маркер «начало массива» не ожидается после самого внешнего массива или объекта - PullRequest
1 голос
/ 10 февраля 2012

Подача json-анализатора с этими данными: http://mapadosradares.com.br/api/get_initial_load выдает эту ошибку: маркер 'начало массива' не ожидается после самого внешнего массива или объекта

Вот мой код:

- (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");
    }
}

Насколько я могу судить, JSON прекрасно работает.Есть мысли?

ОБНОВЛЕНИЕ:

Вот инициализация парсера:

- (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];
}

1 Ответ

2 голосов
/ 10 февраля 2012

Правильно ли вы инициализируете парсер между запросами? Вы не показали свой код, но кажется, что это будет разумной ошибкой, если вы запустили два последовательных вызова канала через анализатор.

Кстати, я запустил вывод фида через превосходный анализатор JSON на http://jsonlint.com, и он, кажется, в порядке.

...