2016-12-20 8 views
2

Ich brauche Zeichenfolge aus der JSON Array, die eine Antwort vom externen Server ist. Dies ist mein Code:Get Zeichenfolge aus JSON Array in Swift

if let dictionary = NSJSONSerialization.JSONObjectWithData(data,options: NSJSONReadingOptions.MutableContainers,error: &parsingError) as NSDictionary?{ 

    var info : NSArray = dictionary.valueForKey("data") as NSArray 
    var names: String? = info[0].valueForKey("firstname") as? String 

    println("name ++\(names)") 

} 

Es kompilieren, aber wenn ich ausführen, nicht läuft ich als

bekam

Gewinde 8: EXC_BAD_ACCESS (code = 2 ..

Dies ist Dictonary kommen von Serverseite

Ich folgte Thread ohne Erfolg: Getting Values from JSON Array in Swift

Kann jemand mir helfen, diese Schnur heraus zu erhalten? Ich kann den Fehler, den ich hier gemacht habe, nicht herausfinden. Jede Hilfe wäre willkommen.

+2

Es ist nicht ein Array, dessen ein Wörterbuch. –

+0

Versuchen Sie diese 'var info: NSDictionary = dictionary.valueForKey (" Daten ") als NSDictionary Var-Namen: String? = info ["firstName"] als? String println ("Name ++ \ (Namen)") ' –

+0

Bitte lassen Sie mich wissen, wenn irgendein Problem auftritt Danke! –

Antwort

1

testen

if let dictionary = NSJSONSerialization.JSONObjectWithData(data,options: NSJSONReadingOptions.MutableContainers,error: &parsingError) as NSDictionary?{ 

    var info : NSDictionary = dictionary.valueForKey("data") as! NSDictionary 
    var names: String? = info["firstName"] as? String 
    println("name ++\(names!)") 

} 
0
let dataId = response.value(forKeyPath: "data.id") as! NSNumber 

Normalerweise mache ich das, wenn nicht bis zur Deserialisierung.

+0

Danke für Ihre Unterstützung. –

0

Try this:

do 
{ 
let data = try JSONSerialization.data(withJSONObject: json, options: JSONSerialization.WritingOptions.prettyPrinted) 
} 
catch _{} 

let data  = json["data"] as! NSDictionary 
let firstName = data["firstName"] 
+1

Danke für Ihre Unterstützung. –