Alamofire json swift 2.2
Posted
技术标签:
【中文标题】Alamofire json swift 2.2【英文标题】: 【发布时间】:2016-04-22 19:27:30 【问题描述】:我正在尝试使用 Alamofire 提取一些 Facebook 地点名称的数据,但我没有运气。 这是我尝试过的,但我无法弄清楚如何让它发挥作用。
xcode 7.3 swift2.2
所以graph api的结果是这样的
"data": [
"category": "Local business",
"category_list": [
"id": "272705352802676",
"name": "Outdoors"
,
"id": "115725465228008",
"name": "Region"
],
"location":
"street": "Athens",
"city": "Palai\u00f3n F\u00e1liron",
"state": "",
"country": "Greece",
"zip": "17562",
"latitude": 37.9284637008,
"longitude": 23.6944070162
,
"name": "THE NAME OF THE PLACE",
"id": "THE ID"
我想进入“数据”,只取最后两行的名称和地点的 ID。
这是我的代码!
override func viewDidLoad()
super.viewDidLoad()
Alamofire.request(.GET, "https://graph.facebook.com/search", parameters: ["q": "", "type": "place", "center": "37.928319,23.7036673", "distance": "10000", "access_token": "ACCESS-TOKEN", "expires_in": "5184000"])
.responseJSON response in
if let JSON = response.result.value
print("JSON: \(JSON["data"]!["name"]!)")
我得到了这个错误
致命错误:在展开可选值时意外发现 nil
知道为什么吗?
【问题讨论】:
print("JSON: (JSON)") 将是一个好的开始。您正在强制解开“数据”和“名称”。如果说您的 JSON 与您期望的不同,则任何一次都可能失败。无论如何,不建议在这种情况下强制展开,最好使用'if let'。可能是某种“错误 JSON”。 【参考方案1】:好吧,我猜这很简单,不值得问这个问题,但这就是解决方案
Alamofire.request(.GET, "https://graph.facebook.com/search", parameters: ["q": "", "type": "place", "center": "37.928319,23.7036673", "distance": "10000", "access_token": "475827182628380|6U-mk-1etGQHwrXRSMF4Ht2zOyc", "expires_in": "5184000"])
.responseJSON (responseData) -> Void in
if((responseData.result.value) != nil)
let swiftyJsonVar = JSON(responseData.result.value!)
if let resData = swiftyJsonVar["data"].arrayObject
self.arrRes = resData as! [[String:AnyObject]]
if self.arrRes.count > 0
self.kati.reloadData()
在牢房里
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCellWithIdentifier("checkInCell", forIndexPath: indexPath)
var dict = arrRes[indexPath.row]
cell.textLabel?.text = dict["name"] as? String
//cell.detailTextLabel?.text = dict["email"] as? String
return cell
别忘了也使用 SwiftyJSON!
【讨论】:
以上是关于Alamofire json swift 2.2的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Alamofire (Swift 2.2) 获取 Twitter 访问令牌
在 Alamofire Swift 2.2 中使用 completionHandler