在Swift中将字典转换为JSON

前端之家收集整理的这篇文章主要介绍了在Swift中将字典转换为JSON前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我创建了下一个词典:
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
    }
}

猜你在找的Swift相关文章