我在 Swift 2.0 中工作,并且在 JSON 方面苦苦挣扎。我正在以 Swift.Optional<NSData>
的形式从网站中提取 JSON .我可以使用
if let x = NSString(data: data!, encoding: NSUTF8StringEncoding){
let y = x as String
}
我正在努力快速地将此 JSON 数据放入字典中。执行此操作的最佳方法是什么?
更新
let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {(data, response, error) in
if let z = NSJSONSerialization.JSONObjectWithData(data!, options:[]) as? [NSObject: AnyObject] {
}
错误
- 表达式类型不明确,没有更多上下文
- 调用可以抛出,但是没有标记'try',错误没有被处理
最佳答案
在 Swift 2 中,如果函数“抛出”(如 NSJSONSerialization
所做的那样),您必须在 do ... catch
block 中处理函数调用并使用try
在抛出函数之前,像这样:
let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {(data, response, error) in
do {
let z = try NSJSONSerialization.JSONObjectWithData(data!, options:[]) as! [NSObject: AnyObject]
print(z)
} catch let myJSONError {
print(myJSONError)
}
}
task!.resume()
请注意,在此示例中,可能的 NSJSONSerialization
失败由 do...catch
和 try
处理myJSONError
错误,但未处理 NSURLSession
的可能失败:您仍然必须检查 error
变量才能处理此问题。这是因为 NSJSONSerialization
“抛出”但 NSURLSession
没有。
关于json - Swift 2.0 JSON 字符串到 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31174433/