json - 在 Swift 中转换 JSON 数据

标签 json swift

我从服务器获取一些 JSON 数据,并将其解析为字典。现在我想从字典中获取数据并将其转换为不同的类型,但出现了一些错误。

我试过了

let manager = AFHTTPRequestOperationManager()
manager.requestSerializer = AFJSONRequestSerializer()
manager.GET(
    "http://localhost/example/jsonpage",
    parameters: nil,
    success: { (operation: AFHTTPRequestOperation!,
        responseObject: AnyObject!) in

        if let data = responseObject as? Dictionary<String, AnyObject> {
            let id = data["id"] as? Int
            let persons = data["persons"] as? Dictionary<String, AnyObject>
        }


    },
    failure: { (operation: AFHTTPRequestOperation!,
        error: NSError!) in
        println("Error: " + error.localizedDescription)
    }
)

这些给了我一个错误:

let id = data["id"] as? Int
let persons = data["persons"] as? Dictionary<String, AnyObject>

错误: 找不到接受所提供参数的“下标”重载

最佳答案

responseObject类型为NSDictionary,支持的JSON值类型为NSDictionary、NSArray、NSString、NSNumber。转换为字典不会将其值转换为正确的类型。您必须单独转换值。

if let nsid: NSNumber = data["id"] as? NSNumber {
    var id = Int(nsid)
}

关于json - 在 Swift 中转换 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24336846/

相关文章:

python - 使用 Python 处理 JSON

java - 将 JSON 保存到 Sqlite 并显示

c# - 如何解析json值长字符

swift - 快速从请求响应中获取 header 数据

ios - 停止 UIDynamicAnimator Whit View 限制

ios - 加载注释时解包可选值时出现意外 fatal error

c# - 在 C# 中反序列化 Zomato JSON 响应

ios - Xcode 用户界面测试 : Executing a Test Conditionally

xcode - 将 NSMenu 链接到 ViewController - Swift

swift - 如何在 Swift 中将嵌套字典转换为平面字典?