我正在使用Alamofire 4.0
和Swift 3.0
,并且正在使用以下代码来解析JSON
:
Alamofire.request(url!, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: nil).responseJSON { (response:DataResponse<Any>) 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]
,因为这个问题建议:Alamofire fire variable type has no subscript members,另外一个也建议:Type Any has no subscript members Error in 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
}
}
关于ios - Alamofire 4.0上出现“类型'Any'没有下标成员”错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39655771/