2016-12-20 75 views
2

我需要從JSON Array獲取字符串,這是來自外部服務器的響應。這是我的代碼:在Swift中從JSON數組中獲取字符串

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)") 

} 

它編譯,但是當我執行,沒有運行我的

螺紋8:EXC_BAD_ACCESS(代碼= 2 ..

這是Dictonary未來從服務器端

{ 
data =  { 
    Id = 55; 
    firstName = fgg; 
    gender = 1; 
}; 
success = 1; } 

我跟着沒有成功的線程:Getting Values from JSON Array in Swift

任何人都可以幫助我得到這個字符串嗎?我找不到我在這裏完成的錯誤。任何幫助,將不勝感激。

+2

它不是一個數組,它的字典。 –

+0

試試這個'var info:NSDictionary = dictionary.valueForKey(「data」)as NSDictionary var names:String? = info [「firstName」] as?字符串 println(「name ++ \(names)」)' –

+0

如果發生任何問題,請讓我知道謝謝! –

回答

1

試試這個

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 

我通常這樣做,如果我不是反序列化。

+0

感謝您的支持。 –

0

試試這個:

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

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

感謝您的支持。 –