“在Alamofire 4.0上输入’Any’没有下标成员”错误
我正在使用Alamofire 4.0
和Swift 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"; } )
问题是我无法访问该值( Name
和Age
),因为当我尝试执行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 } }