2016-08-04 5 views
-1

während ich versuche, JSON String in das Wörterbuch zu konvertieren, gibt es mir fatalen Fehler: unerwartet gefunden Null beim Auspacken eines optionalen Werts.unerwartet gefunden Null beim Entpacken ein optionaler Wert beim Konvertieren von JSON Array

self.res = Jsn.convertStringToDictionary(self.sub)! 

sub = [{ "CityID": 6, "Cityname": "Ankara"}, { "CityID": 34 "Cityname": "Istanbul"}]

und die Funktion ist :

func convertStringToDictionary(text: String) -> [String:AnyObject]? { 
    if let data = text.dataUsingEncoding(NSUTF8StringEncoding) { 
     do { 
      return try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions()) as? [String:AnyObject] 
     } catch { 
      print(error) 
     } 
    } 
    return nil 
} 

Können Sie mir mit dem Problem helfen. Vielen Dank im Voraus!

+0

Ihre tatsächliche Antwort anzeigen, die vom Server kommt. –

+0

Die Funktion kommt von http://stackoverflow.com/a/30480777/2227743 und heißt 'convertStringToDictionary'. Ihr JSON ist ein * Array * von Wörterbüchern ... – Moritz

+0

Auch diese Funktion gibt ein Optional * aus einem Grund * zurück. Wenn Sie das Ergebnis auf der Seite des Anrufers erzwingen, statt mit dem Optional umzugehen, stürzt Ihre App natürlich ab. – Moritz

Antwort

0

Sie sollten es in [[String:AnyObject]] anstelle von [String:AnyObject] konvertieren, weil es Array von Wörterbüchern ist.

Versuchen Sie es mit

return try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions()) as? [[String:AnyObject]] 
+0

Vielen Dank, dass funktioniert! – slytrkmn