“在Alamofire 4.0上输入’Any’没有下标成员”错误

我正在使用Alamofire 4.0Swift 3.0 ,我使用以下代码来解析JSON

 Alamofire.request(url!, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: nil).responseJSON { (response:DataResponse) in switch(response.result) { case .success(_): if let JSON = response.result.value{ print(JSON) //print(JSON["name"]) //print(JSON["age"]) } break case .failure(_): print("There is an error") break } } 

它给了我以下回应:

 ( { Name = "Peter"; Age = "18"; } ) 

问题是我无法访问该值( NameAge ),因为当我尝试执行JSON["name"]我收到以下错误:

类型“任何”没有下标成员

我也尝试过添加as? [String: Any] as? [String: Any]正如这个问题所示: Alamofire fire变量类型没有下标成员 ,另外一个也暗示: Type Any没有下标成员Swift 3.0中的错误? 但是当我使用它时,任何回应都会给我。

如果我使用:

 case .success(_): if let JSON = response.result.value as? [String: Any]{ print(JSON) print(JSON["TitularEmail"] as! String) } break 

Xcode或Xcode控制台中都没有显示错误。 相反,没有给出任何回应。

如何以正确的方式解决此错误? 没问题,在我没有收到任何错误之前使用解决方案,但我也没有得到任何响应,所以它根本没有解决它。

提前致谢!

试试以下代码:

 Alamofire.request(url!, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: nil).responseJSON { response in switch(response.result) { case .success(_): if let JSON = response.result.value as! [[String : Any]]!{ print("JSON: \(JSON)") let dic = JSON[0] as [String:AnyObject]! print("TitularEmail : ",dic?["TitularEmail"]) } break case .failure(_): print("There is an error") break } }