types'任何'没有下标成员在xcode 8 Swift 3

我的应用程序应该去特定的位置来拉下它需要加载的网站。 在2.3中,它的工作就像一个魅力,但因为我已经更新了Xcode(我没有很多的经验),它给我的错误“types”任何“没有下标成员”,并突出显示“JSON”在第三行之前

...Retriever = json["WEB"]... 

这是与它相关的代码。

 let json = try JSONSerialization.jsonObject(with: data!, options:.allowFragments) if let Retriever = json["WEB"] as? [[String: AnyObject]] { for website in Retriever { if let name = website["URL"] as? String { self.loadAddressURL(name) 

我觉得我缺less一些小东西。 如果有更好的办法做到这一点,我会喜欢的build议。 URL返回这个JSON

 { "WEB" : [ { "URL" : "http://www.google.com" } ] } 

但是如果我能简化它,我就会喜欢它

 {"URL":"http://www.google.com"} 

尝试这个:

 let json = try JSONSerialization.jsonObject(with: data!, options:.allowFragments) as! [String:AnyObject] 

安全方式:

 do { if let json = try JSONSerialization.jsonObject(with: data!, options:.allowFragments) as? [String:Any] { print(json) } } catch let err{ print(err.localizedDescription) } 

您必须将typesAny为Swift字典types[String:AnyObject]

编辑:斯威夫特3
AnyObject 3中, AnyObject的目的更为明确。 所以更有利的Swift Dictionarytypes将是[String:Any]

任何数据types都是别名。
AnyObject是从类派生的任何数据types的别名。

欲了解更多信息,请访问: https : //craiggrummitt.com/2016/09/16/any-vs-anyobject-vs-nsobject-in-swift-3/