如何在Swift中从NSDictionary获取所有的键和值到单独的string数组?

let urlAsString = "https://drive.google.com/uc?export=download&id=0B2bvUUCDODywWTV2Q2IwVjFaLW8" let url = NSURL(string: urlAsString)! let urlSession = NSURLSession.sharedSession() let jsonQuery = urlSession.dataTaskWithURL(url, completionHandler: { data, response, error -> Void in do { if let jsonDate = data, let jsonResult = try NSJSONSerialization.JSONObjectWithData(jsonDate, options: []) as? NSDictionary { print(jsonResult) } } catch let error as NSError { print(error) } }) jsonQuery.resume() 

好的,我在这里接收来自在线json的数据,然后把它存储为jsonresult中的NSDictionary。 我需要把所有的键和值分成两个单独的数组?

基本上我想这个

jsonresult.allkeys – >string数组
jsonresult.allvalues – >string数组

您可以使用:

 let keys = jsonResult.flatMap(){ $0.0 as? String } let values = jsonResult.flatMap(){ $0.1 } 

这很简单,因为你使用jsonResult作为NSDictionary

 let dict: NSDictionary = ["Key1" : "Value1", "Key2" : "Value2"] let keys = dict.allKeys let values = dict.allValues 

在你的情况下

 let keys:[String] = dict.allKeys as! [String] var values:[String] if let valuesSting = dict.allValues as? [String] { values = valuesSting }