2016-04-19 12 views
1

Ich mache eine einfache Anfrage an die Flickr-API. Ich weiß, dass die Anforderungs-URL korrekt ist und dass die URL-Aufgabe Daten zurückgibt. Jedoch, wenn ich versuche:NSJSONSerialization fehlgeschlagen

let jsonObject: AnyObject! = try NSJSONSerialization.JSONObjectWithData(data, options: []) 

in einem do, catch Block, schlägt der Vorgang fehl, aber stürzt nicht die App. Ich habe versucht, die Optionen auf MutableContainers und AllowFragments zu ändern, aber nichts scheint zu funktionieren.

+0

Wenn Sie Daten in Zeichenfolge mit UTF8Encoding umwandeln, scheint die Zeichenfolge JSON und gültig? – Larme

+0

Ja, es ist korrekt formatiert – genghiskhan

Antwort

1

die Daten nehmen und es in eine Zeichenfolge wie folgt konvertieren:

let responseString = String(data: data, encoding: NSUTF8StringEncoding) 

Dann, dass wie jsonlint.com durch einen Validator einfügen, um festzustellen, ob Sie tatsächlich gültig JSON bekommen.

Ich vermute, Sie erhalten keine gültige HTTP-Antwort von der API, und vielleicht erhalten Sie HTML zurück (oder einfachen Text), der den Fehler beschreibt?

+0

Ich schickte es durch und es hieß, es sei gültig. Wenn ich es jedoch auf der Konsole ausdrucke, wird es als jsonFlickrApi (gültige Daten) angezeigt. Ist das normal oder ist es der Fehler? – genghiskhan

+0

Können Sie den Code und den tatsächlichen JSON, den Sie sehen, aus der 'NSData'-Codierung veröffentlichen? –

+0

Der responseString wird wie folgt gedruckt: Optional (jsonFlickrApi ({"fotos": {"page": 1, "pages": 10, "perpage": 100, "gesamt": 1000, "photo": [{"id": "25954170134" ...... "width_h": "1600"}]}, "stat": "ok"})) – genghiskhan