Valeur non valide environ le caractère 0, NSJSONSerialization

Je fais un get à partir de mon serveur et je reçois une réponse valide:

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    //Append the new data to the instance variable you declared


    //[_responseData appendData:data];

    NSString *responseBody = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    NSLog(@"%@",responseBody);

    if(data != NULL)
    {
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
                                                 (unsigned long)NULL), ^(void) {

        NSError *error = nil;
        //NSMutableArray *jsonArray = [[CJSONDeserializer deserializer] deserializeAsArray:[responseBody dataUsingEncoding:NSUTF8StringEncoding] error:&error];
            NSMutableArray *jsonArray = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];
        if (error)
        {
            NSLog(@"JSONObjectWithData error: %@", error);
            [delegate onErrorGetArrayFromServer];
        }
        else
        [self parseJSON:jsonArray];

        });

    }
    else
    {
        if([delegate respondsToSelector:@selector(onErrorGetArrayFromServer)])
        {
            [delegate onErrorGetArrayFromServer];
        }
    }
}

La réponse est, comme:

    [{"id":"37",
"id_estado":"1",
"id_categoria":"1",
"nombre":"fer",
"email":"[email protected]",
"fecha":"2014-07-16 11:25:00",
"observaciones":"as dasd asdasd sasd",
"latitud":"37.619636",
"longitud":"-4.318449",
"foto":"images\/default.jpg"},

{"id":"36",
"id_estado":"1",
"id_categoria":"6",
"nombre":"Fernando",
"email":"",
"fecha":"2014-07-16 10:32:45",
"observaciones":"que",
"latitud":"37.6178690439634",
"longitud":"-4.3238141387701",
"foto":"images\/default.jpg"}]

Il me lance le message d'erreur:

JSONObjectWithData error: Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (Invalid value around character 0.) UserInfo=0x9e0f610 {NSDebugDescription=Invalid value around character 0.}

J'ai essayé avec une autre bibliothèque (CJSON) et il me jeter de l'erreur:

JSONObjectWithData error: Error Domain=kJSONScannerErrorDomain Code=-202 "Could not scan array. Could not scan a value." UserInfo=0xa15c0e0 {snippet=!HERE>![{"id":"37","id_esta, location=0, NSLocalizedDescription=Could not scan array. Could not scan a value., character=0, line=0}

Mon serveur est un RESTE de serveur et pour mon Android application fonctionne bien.


_SOLVED_

Grâce à @Himanshu Joshi:

Pourquoi êtes-vous l'analyse des données en didReceiveData:? Les données ne sont pas totalement téléchargé, vous devrez ajouter les données. Analyser les données en connectionDidFinishLoading: délégué de la méthode

J'ai analysé les données dans connectionDidFinishLoading: et tout aller bien.

Ressemble à ordures de données avant l'ouverture '['. NSLog la NSData que vous avez reçu et de nous montrer la première douzaine d'octets.
[{"id":"37","id_estado":"1","id_categoria":...
Pourquoi êtes-vous l'analyse des données en didReceiveData:? Les données ne sont pas totalement téléchargé, vous devrez ajouter les données. Analyser les données en connectionDidFinishLoading: méthode du délégué
J'aime man u, j'ai perdu ma matinée pour cette stupide erreur 😀
Ce que vous avez saisi a été caractères. Pas d'octets. Je peux voir si les octets sont mauvais. Je ne peux pas voir si les caractères sont mal.

OriginalL'auteur | 2014-07-17