2016-06-30 59 views
2

我有用于阅读JSON文件的代码,我试图进入Swift 3环境。那就是:Swift到Swift 3代码转换:读取JSON文件

do { 
    let dictionary = try NSJSONSerialization.JSONObjectWithData(dataOK, options: NSJSONReadingOptions()) as AnyObject! 
     dictionaryOK = (dictionary as! NSDictionary as? Dictionary <String, AnyObject>)! 
    } 
catch { 
    print("Level file '\(filename)' is not valid JSON: \(error)") 
    return nil 
} 

Xcode中给出了产生这种建议修正一些错误(如一些对象和类已更名):

do { 
    //Problem here: parameters don't match overrides 
    let dictionary = try JSONSerialization.jsonObject(dataOK as Data, options: JSONSerialization.ReadingOptions()) as AnyObject! 
    dictionaryOK = (dictionary as! NSDictionary as? Dictionary <String, AnyObject>)! 
} 
catch { 
    print("Level file '\(filename)' is not valid JSON: \(error)") 
    return nil 
} 

不匹配任何一个JSONObjects覆盖的(它说)。我检查了说jsonObjects的参数应该是:

class func jsonObject(with data: Data, 
      options opt: JSONSerialization.ReadingOptions = []) throws -> AnyObject 

我在做什么错?

回答

9

你的Swift 2代码是非常详细的开始。

试试这个:

do { 
    if let dictionaryOK = try JSONSerialization.jsonObject(with: dataOK, options: []) as? [String: AnyObject] { 
     // parse JSON 
    } 
} catch { 
    print(error) 
}