我是Swift的新手,正在使用alamofire方法调用API。我已成功获得响应,但无法理解如何在标签上进行解析,这是我尝试的代码
Alamofire.request(url, method: .get).responseJSON
{
response in
let result = response.result.value
print(response)
if result != nil{
let data = result as! [String : AnyObject]
let userdata = data["data"] as! NSDictionary
let address = userdata["address"]
let city = userdata["city"]
let pincode = userdata["pincode"]
let state = userdata["state"]
self.lblAddress.text = city as? String
self.lblCity.text = address as? String
self.lblpincode.text = pincode as? String
self.lblstate.text = state as? String
}
}
这是我得到的答复
SUCCESS: {
"city_address" =
(
{
address = "404 palladium business hub.";
city = Ahmedabad;
pincode = 380061;
state = Gujarat;
}
);
}
无法理解我要去哪里哪里,请帮助我解决此问题。
print(result)
的输出
{
"city_address" = (
{
address = "404 palladium business hub.";
city = Ahmedabad;
pincode = 380061;
state = Gujarat;
}
);
}
答案 0 :(得分:0)
两个问题:
city_address
的值不要在Swift中使用NSDictionary
,未指定的JSON值始终为Any
。
if let result = response.result.value as? [String:Any],
let dataArray = result["city_address"] as? [[String : Any]], // maybe even `[[String:String]]`
let userData = dataArray.first {
let address = userData["address"]
let city = userData["city"]
let pincode = userData["pincode"]
let state = userData["state"]
DispatchQueue.main.async {
self.lblAddress.text = address as? String
...