使用 Alamofire 从 api 获得响应时的问题
Posted
技术标签:
【中文标题】使用 Alamofire 从 api 获得响应时的问题【英文标题】:Issues While getting response from api using Alamofire 【发布时间】:2018-12-22 13:07:47 【问题描述】:我正在我的应用程序中集成详细 api,但我无法理解如何从数组中获取数据,我将我的回复放在这里以便更好地理解
"success": "1",
"data":
"service_list": [
"service_id": "11",
"fk_user_id": "77",
"fk_bus_id": "0",
"fk_sub_cate_id": "1",
"service_name": "Business Cards",
"service_desc": "Business Cards",
"service_price": "500",
"service_img1": "https://www.kwikmypay.com/mode_share/modeshare_admin/assets/images/business/ser_pquat1531379189.png",
"service_img2": "https://www.kwikmypay.com/mode_share/modeshare_admin/assets/images/business/ser_hjzty1531379189.png",
"service_img3": "https://www.kwikmypay.com/mode_share/modeshare_admin/assets/images/business/ser_rmgxb1531379189.png",
"service_img4": "https://www.kwikmypay.com/mode_share/modeshare_admin/assets/images/business/ser_kptyq1531379189.png",
"service_img5": "https://www.kwikmypay.com/mode_share/modeshare_admin/assets/images/business/ser_xwmlq1531379189.png"
]
,
"message": ""
这是我的回应,我希望 服务列表 数组在表格视图中打印,任何人都可以帮助我
这是我的答案
let busdetail = ["user_id":u_id,"access_token":acc_tkn,"bus_id":busid] as [String:Any]
print(busdetail)
Alamofire.request(businessDetail, method: .post, parameters: busdetail).responseJSON
response in
print(response)
let result = response.result
if let dict = result.value as? Dictionary<String,AnyObject>
if let serlist = dict["data"]
if let s_list = serlist["service_list"]
self.servicelist = s_list as! [AnyObject]
self.tbl_expand.reloadData()
//self.tbl_servicelist.reloadData()
//self.dropDown.items = categorylist as! [AnyObject] as! [String]
self.hideLoader()
//self.activityIndicator.stopAnimating()
【问题讨论】:
你遇到什么问题显示你的代码 我是 ios 新手,所以我无法理解如何从数据中获取响应:serviewlist[] 你的服务列表是一个字典数组 它是一本字典 我只想知道如何从这里的服务列表数组中获取响应 【参考方案1】:func demoApi()
Alamofire.request("yourapi", method: .post, parameters: nil, encoding: JSONEncoding.default, headers: nil).responseJSON (response:DataResponse<Any>) in
switch(response.result)
case .success(_):
if let json= response.result.value as? [String:Any]
if let response = json["data"] as? [String:Any],
let ServiceList= response["service_list"] as? [[String:Any]]
for servicelist in ServiceList
let service_id= servicelist ["service_id"] as! String
let service_name= servicelist ["service_name"] as! String
let service_img1= servicelist ["service_img1"] as! String
DispatchQueue.main.async
self.yourTableView.reloadData()
break
case .failure(_):
print("Error")
break
【讨论】:
是的,我正在寻找这个谢谢 你得到了你想要的 是的,我得到了它,我得到了我正在寻找的东西 快乐编码 :) 是的,谢谢您的帮助以上是关于使用 Alamofire 从 api 获得响应时的问题的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 RxSwift 和 alamofire 获得嵌套 api 调用的响应?