Erreur Json : “NSDebugDescription Ordures à la fin” (iOS)
bonjour,
Même si j'ai fait des recherches, je n'ai rien trouvé qui puisse m'aider dans ma situation.
Alors, j'essaie de parser Json créé par un script php sur xcode, mais j'ai une erreur qui bloque le processus.
Je suis nouveau donc je triedto faire le meilleur pour la mise en page de ma question...
Mon erreur :
[376:70b] Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (Garbage at end.) UserInfo=0x8bc0f70 {NSDebugDescription=Garbage at end.
Mon code :
NSData *jsonSource = [NSData dataWithContentsOfURL:
[NSURL URLWithString:@"http://codlobbyz.com/app/service.php"]];
NSError *err;
id jsonObjects = [NSJSONSerialization JSONObjectWithData:
jsonSource options:NSJSONReadingMutableContainers error:&err];
NSLog(@"%@", err);
Mon json :
[{"nom":"Call of duty ghost","date":"22 novembre","image":"appicon.png"},{"nom":"Fifa 14","date":"22 novembre","image":"appicon.png"}]
J'espère que vous pourrez m'aider, je vous remercie pour vos réponses.
Si vous allez sur jsonlint.com et essayer avec votre URL codlobbyz.com/app/service.php, et essayer avec votre URL, il dit que votre JSON n'est pas conforme. Semble que votre WS est d'envoyer d'autres données (c'est-à ordures).
hm, alors quand j'ai visiter cette URL et collez le json à partir de l'exemple le validateur dit "JSON VALIDE"...
comparer le JSON dans la question avec les données de réponse de codlobbyz.com/app/service.php
C'est parce que le navigateur va "effacer/interpréter" des HTML ou quelle que soit la langue web et ne rend pas (comme : montrer à l'utilisateur).
ok, avec curl, j'ai vu le problème 😀
hm, alors quand j'ai visiter cette URL et collez le json à partir de l'exemple le validateur dit "JSON VALIDE"...
comparer le JSON dans la question avec les données de réponse de codlobbyz.com/app/service.php
C'est parce que le navigateur va "effacer/interpréter" des HTML ou quelle que soit la langue web et ne rend pas (comme : montrer à l'utilisateur).
ok, avec curl, j'ai vu le problème 😀
OriginalL'auteur Jopolaz | 2014-05-02
Vous devez vous connecter pour publier un commentaire.
Le script PHP est de retour JSON, mais aussi un extrait de code HTML qui suit:
Vous pouvez le voir en utilisant curl à partir de la ligne de commande:
Ou par chargement dans un navigateur et affichage de la source.
Si vous avez le contrôle sur le script PHP, supprimer le code google analytics. Sinon, vous pouvez utiliser une expression régulière pour supprimer la non-JSON partie de la réponse avant de l'analyser.
EDIT: À distance de la non-JSON avec la regex, quelque chose de ce genre:
En 8 heures, je vais poster le code final ! (je ne peux pas maintenant parce que je suis un nouvel utilisateur 🙂 )
OriginalL'auteur James Nick Sears
Si vous regardez sur les Données brutes, vous trouverez de '0' à l'intérieur pour les supprimer, j'ai utilisé suivantes pour la boucle
Ce sera coupé tous les '00' octets à partir de la fin de vos données.
OriginalL'auteur ua24