我从服务器获取一些 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/