json-framework - маркер "начало массива" не ожидается после самого внешнего массива или объекта

Подача 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 ответ

Решение

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

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

Другие вопросы по тегам