我正在<artifactId>gttown-dao-enterprise</artifactId>
<dependency>
<groupId>com.gttown</groupId>
<artifactId>gt-common-mybatis</artifactId>
<version>1.0.0-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>com.gttown</groupId>
<artifactId>gt-common-util</artifactId>
</exclusion>
</exclusions>
</dependency>
使用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
时,我收到以下错误:
类型'Any'没有下标成员
我也尝试添加JSON["name"]
,因为这个问题建议:Alamofire fire variable type has no subscript members而另一个也建议:Type Any has no subscript members Error in Swift 3.0?但是当我使用它时,任何回复都会给我。
如果我使用:
as? [String: Any]
在case .success(_):
if let JSON = response.result.value as? [String: Any]{
print(JSON)
print(JSON["TitularEmail"] as! String)
}
break
或Xcode的控制台中都没有显示任何错误。相反,没有给出任何回应。
如何以正确的方式解决此错误?没问题,在我没有收到任何错误之前使用解决方案但是我没有得到任何响应,所以它根本没有解决它。
提前致谢!
答案 0 :(得分:2)
请尝试以下代码:
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
}
}