2015-02-24 8 views

Antwort

0

Sie besser die Vorstellung davon, wie man mit Wörterbücher in Swift

let employees = json["employees"]! as [[String : AnyObject]] 

Der nächste Schritt ist eine Schleife der Mitarbeiter Array und drucken Sie die Vor- und den Nachnamen umgehen können.

Denken Sie daran, dass wir eine Reihe von Wörterbüchern durchlaufen. Was bedeutet, dass, um den String-Wert von Vornamen und Nachnamen wir die optionals auspacken müssen, um zu bekommen zuerst:

for employee in employees { 
    let firstName = employee["firstName"]! as String 
    let lastName = employee["lastName"]! as String 

    println("employee: \(firstName) \(lastName)") 
} 

erstellen, ausführen und Sie sollen sehen:

employee: John Doe 
employee: Anna Smith 
employee: Peter Jones 
+0

Danke! Es ist die perfekte Antwort für diese Frage ... –

0

Bitte überprüfen Sie diesen Code. Es könnte helfen, was Sie brauchen.

var dictData = Dictionary <String,Any>() 
var arrDictData = Array<Any>() 

// Will store value for key in dictionary. 
func storeData (strName: String , strAge: String) { 
     dictData["name"]=strName 
     dictData["age"]=strAge 
     println("dictData: \(dictData)") 
     storeInArray(dictData) 
    } 

    // Will store value of dictionary in array. 
    func storeInArray (dict : Any) { 
     arrDictData.append(dict) 
     println("arrDictData: \(arrDictData)") 
    } 

    // Will return count of array. 
    func resultArray() -> Int { 
     println(arrDictData.count) 
     return arrDictData.count 
    } 

    // This function will return value in label. 
    func arrDictResult(dictKey: String, rowIndex: Int) -> String { 
     var dataTemp = arrDictData[rowIndex] as Dictionary <String,Any> 
     var val = dataTemp[dictKey] as String 
     return val 
    } 
6

können Sie versuchen, diese

let array: AnyObject? = dic["Table"] 
2

Sie dieses

var dict=NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: NSErrorPointer.null()) as NSDictionary 

var temp=dict["contactname"] as String 

var tem=dict.valueForKey("contactname") as String 
+0

Willkommen bei StackOverflow. Bitte fügen Sie Ihrem Code eine Erläuterung hinzu, die zeigt, wie das Problem gelöst wird und warum. Dies wird anderen helfen, die Ihre Antwort in der Zukunft sehen, und Ihre Antwort für StackOverflow wertvoller machen. –

3

Einfach zB versuchen.

(dicDetail.valueForKey("name") as! String) 
+0

Aber es wird jetzt nicht funktionieren. Ich denke, swift3 wird die Syntax ändern, um den Schlüsselwert vom Dictionary zu erhalten. – hilaj

4

Es ist nicht mehr valueForKey: in Swift, aber es gibt einen Weg map zu verwenden, um eine ähnliche, wenn nicht gleich, Ergebnis zu erzielen.

Wenn die Objekte in der Sammlung sind Wörterbücher:

let array = dic.map { $0["table"] as? String } 

Wenn die Objekte in der Sammlung Objekte sind:

let array = dic.map{ $0.table } 

Wenn Sie Objective-C Sammlung Typen wie NSDictionary in Ihrem Beispiel verwenden , dann wie andere gesagt haben, können Sie weiterhin valueForKey: verwenden.

let array = dic.valueForKey("table")