我创建了下一个词典:
var postJSON = [ids[0]:answersArray[0],ids[1]:answersArray[1],ids[2]:answersArray[2]] as Dictionary
我得到:
[2: B,1: A,3: C]
那么,我如何将它转换为JSON?
Swift 3.0
根据Swift API Design Guidelines,使用Swift 3,NSJSONSerialization的名称及其方法已更改。
let dic = ["2": "B","1": "A","3": "C"] do { let jsonData = try JSONSerialization.data(withJSONObject: dic,options: .prettyPrinted) // here "jsonData" is the dictionary encoded in JSON data let decoded = try JSONSerialization.jsonObject(with: jsonData,options: []) // here "decoded" is of type `Any`,decoded from JSON data // you can now cast it with the right type if let dictFromJSON = decoded as? [String:String] { // use dictFromJSON } } catch { print(error.localizedDescription) }
Swift 2.x
do { let jsonData = try NSJSONSerialization.dataWithJSONObject(dic,options: NSJSONWritingOptions.PrettyPrinted) // here "jsonData" is the dictionary encoded in JSON data let decoded = try NSJSONSerialization.JSONObjectWithData(jsonData,options: []) // here "decoded" is of type `AnyObject`,decoded from JSON data // you can now cast it with the right type if let dictFromJSON = decoded as? [String:String] { // use dictFromJSON } } catch let error as NSError { print(error) }
Swift 1
var error: NSError? if let jsonData = NSJSONSerialization.dataWithJSONObject(dic,options: NSJSONWritingOptions.PrettyPrinted,error: &error) { if error != nil { println(error) } else { // here "jsonData" is the dictionary encoded in JSON data } } if let decoded = NSJSONSerialization.JSONObjectWithData(jsonData,options: nil,error: &error) as? [String:String] { if error != nil { println(error) } else { // here "decoded" is the dictionary decoded from JSON data } }