【发布时间】:2016-09-23 08:06:36
【问题描述】:
我正在使用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"] 时出现以下错误:
类型 'Any' 没有下标成员
我也尝试添加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 控制台中均未显示任何错误。相反,没有给出任何回应。
如何以正确的方式解决此错误?没关系,在我没有收到任何错误之前的解决方案,但我也没有得到任何响应,所以它根本没有解决它。
提前致谢!
【问题讨论】:
-
您的 JSON 似乎是一个数组,而不是字典。所以试试看? [[String: Any]] 不一样? [字符串:任意]