2015-02-24 15 views

Trả lời

0

Bạn tốt hơn sẽ có được ý tưởng về cách bạn có thể đối phó với Từ điển ở Swift

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

Bước tiếp theo là để lặp mảng lao động và in firstName và lastName.

Hãy nhớ rằng chúng tôi đang lặp lại một loạt các từ điển. Có nghĩa là để có được các giá trị String từ firstName và lastName chúng ta cần phải unwrap optionals đầu tiên:

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

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

xây dựng, chạy và bạn sẽ thấy:

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

Cảm ơn! Đó là câu trả lời hoàn hảo cho câu hỏi này ... –

0

Vui lòng kiểm tra mã này. Nó có thể giúp ích cho những gì bạn cần.

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

Bạn có thể thử này

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

Bạn có thể thử

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

Chào mừng bạn đến với StackOverflow. Vui lòng thêm một số giải thích cho mã của bạn, cho biết cách giải thích vấn đề và lý do tại sao. Điều này sẽ giúp những người khác nhìn thấy câu trả lời của bạn trong tương lai và làm cho câu trả lời của bạn có giá trị hơn đối với StackOverflow. –

3

đơn giản ví dụ này.

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

Nhưng nó sẽ không hoạt động ngay bây giờ. Tôi nghĩ swift3 sẽ thay đổi cú pháp để nhận giá trị khóa từ Dictionary. – hilaj

4

Không có nhiều valueForKey: trong Swift, nhưng có một cách để sử dụng map để đạt được một tương tự, nếu không giống nhau, kết quả.

Nếu các đối tượng trong bộ sưu tập những bộ từ điển:

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

Nếu các đối tượng trong bộ sưu tập là các đối tượng:

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

Nếu bạn đang sử dụng loại bộ sưu tập Objective-C như NSDictionary trong ví dụ của bạn , như những người khác đã nói, bạn vẫn có thể tiếp tục sử dụng valueForKey:.

let array = dic.valueForKey("table") 
Các vấn đề liên quan