Convertir au format JSON NSData à NSDictionary

Je suis en utilisant une API de service d'un service web et il est écrit dans la description qu'ils envoient des données JSON qui correspond aussi à mon avis avec la réponse que je reçois de lui.
Voici une partie de ce que j'ai obtenu à partir de la NSURLConnection-Délégué (connexion didReceiveData: (NSData *) données) et converti en un NSString à l'aide de:

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

Voici l'extrait:

{"scans": 
{
    "Engine1“: 
    {
        "detected": false, 
        "version": "1.3.0.4959", 
        "result": null, 
        "update": "20140521"
    }, 
    "Engine2“: 
    {
        "detected": false,
         "version": "12.0.250.0",
         "result": null,
         "update": "20140521"
    }, 
        ...
    },
    "Engine13": 
    {
         "detected": false,
         "version": "9.178.12155",
         "result": 

Dans le NSLog-Chaîne, il s'arrête là. Maintenant, je voudrais savoir de vous quoi de mal que je ne peux pas convertir ces données en JSON Dictionnaire avec cette ligne de code:

NSError* error;
    NSMutableDictionary *dJSON = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];

J'expérimenter avec quelques options, mais toujours la même erreur:

Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" 
(Unexpected end of file while parsing object.) UserInfo=0x109260850 {NSDebugDescription=Unexpected end of file while parsing object.}

Tout indique que le JSON paquet est incomplet, mais je ne sais pas comment le vérifier ou comment faire pour trouver la question qui devrait être situé dans mon code.

ressemble à l'API envoie incomplètes ou tronquées de données. Il n'y a rien que vous pouvez faire.
Vous ne pouvez pas convertir à cause de son caractère incomplet. Êtes-vous essayer de le convertir en didReceiveData: ou dans connectionDidFinishLoading:? Si son didReceiveData alors il sera incomplète si HTTP a diviser et vous devez le convertir en connectionDidFinishLoading après avoir remonté.
Oui @MartinH vous avez raison et je l'ai fait comme Rajeev a écrit dans son de répondre aussi! Merci beaucoup!
+1 pour l'utilisation de l'erreur parm et l'affichage.

OriginalL'auteur user3191334 | 2014-05-21