2012-03-25 4 views
2

ich eine JSON-Antwort von einem Home anfordern Gerät steuern:NSJSONSerialization gibt mir Fehler "Duplicate key"

NSData* responseData = [NSData dataWithContentsOfURL:url]; 

Die JSON-Daten in responseData ist vollständig und gültig. Allerdings, wenn ich versuche

NSDictionary* dict = [NSJSONSerialization 
          JSONObjectWithData:responseData       
          options:kNilOptions 
          error:&error]; 
NSLog("Error: %@", error); 

es gibt mir die folgende Fehlermeldung:

Error: Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (Duplicate key for object around character 0.) UserInfo=0x6a8b8e0 {NSDebugDescription=Duplicate key for object around character 0.}

ich das Web durchsucht, aber nichts hilfreich bisher finden kann.


bearbeiten: Die JSON Antwort es recht lange, so anstatt es hier zu veröffentlichen, fügen Sie es here finden.

+1

Es wäre einfacher, wenn Sie zeigen, verwenden Sie die JSON-Zeichenfolge. – MByD

Antwort

0

Es sieht so aus, als wäre die JSON in Ordnung, indem Sie es in http://jsonformat.com/ einfügen - vielleicht haben Sie einen Apple Bug gefunden? Eine andere Möglichkeit zu versuchen und zu validieren wäre, eine iOS-Bibliothek eines Drittanbieters zu verwenden und zu sehen, ob es Ihnen den gleichen Fehler gibt? Sag mal, TouchJSON?

+0

Danke! TouchJSON arbeitete für mich, ich meldete diesen Vorfall bei Apple. – Norbert

0

Ich bekomme den gleichen Fehler, nur zufällig, wenn die App läuft. Wenn die NSJSONSerialization fehlschlägt, habe ich das Json-Objekt überprüft, das mit einem JSON-Viewer angedockt ist. Der JSON ist immer in Ordnung. Bugs in NSJSONSerialization, wenn es mehrmals aufgerufen wird?

+0

Ich bin zu TouchJSON gewechselt und es hat einen tollen Job gemacht. Versuche es! :) – Norbert

0

Ich habe den gleichen Fehler. Meine JSON-Daten übergaben den JSON-Validator unter http://jsonformatter.curiousconcept.com/. In meinem JSON (am Ende des Wörterbuchs) habe ich jedoch zwei duplizierte Schlüssel gefunden. Nachdem ich diese Schlüssel entfernt habe, funktioniert NSJSONSerialization reibungslos.

+0

JSON definiert nicht, wie doppelte Schlüssel behandelt werden sollen. Alles, was JSON in NSDictionary steckt, kann sie möglicherweise nicht sinnvoll handhaben. – gnasher729