不能解决“模糊使用下标”

我想知道有人能帮助我。 我试图将JSON响应(从NSUrlSession )转换成我可以使用的数组。

这很奇怪,这是昨天晚上工作。 但是,我现在有一个build立错误,说“模糊使用下标”

  let url = NSURL(string: "http://192.168.0.8/classes/main.php?fn=dogBoardingGet") let task = NSURLSession.sharedSession().dataTaskWithURL(url!) {(data, response, error) in print(NSString(data: data!, encoding: NSUTF8StringEncoding)) //var boardings = [String]() do { let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments) if let theDogs = json[0] as? [[String: AnyObject]] { for dog in theDogs { if let ID = dog["ID"] as? String { print(ID + " Safe") let thisDog = Dog(name: (dog["Name"] as? String)!, surname: (dog["Surname"] as? String)!, id: (dog["ID"] as? String)!, boarding: true) let newIndexPath = NSIndexPath(forRow: self.dogs.count, inSection: 0) self.dogs.append(thisDog) self.tableView.insertRowsAtIndexPaths([newIndexPath], withRowAnimation: .Bottom) } } } } catch { print("error serializing JSON: \(error)") } // print(names) // ["Bloxus test", "Manila Test"] } task.resume() 

错误是在这一行: if let theDogs = json[0] as? [[String: AnyObject]] { if let theDogs = json[0] as? [[String: AnyObject]] {

从我看到其他问题时可以看出,错误是因为AnyObject ,所以我试图将其更改为[String: String]但我仍然得到相同的错误。

任何人都可以看到这个错误的原因? 任何指导,你可以提供将不胜感激。

谢谢

额外的信息

从服务器收到的JSON响应:

[[{ “ID”: “47”, “名称”: “Sparky的”, “姓”: “麦卡利斯特”}]]

看起来你正在使用NSJSONSerialization,但是你没有说你希望什么types的对象([AnyObject]或[String:AnyObject])。 他们错误你得到的是由于你没有铸造到[AnyObject]的JSON。

PS:你可能会考虑不使用一个强制解开数据(数据!)

 let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments) as! [AnyObject]