使用Alamofire + SwiftyJSON获取JSON数组

时间:2015-12-03 20:08:15

标签: swift alamofire swifty-json

我对Swift真的很新,抱歉,如果这是一个愚蠢的问题......似乎有很多问题,但没有一个使用最新版本的Alamofire

Alamofire.request(.GET, url)
    .responseJSON { response in

    let json = JSON(response.data!)
    debugPrint(json)
    self.delegate?.didReceiveAPIResults(json)
}

代表的didReceiveAPIResults方法

func didReceiveAPIResults(results: JSON) {
    dispatch_async(dispatch_get_main_queue(), {
        self.tableData = results["items"].arrayObject!
        self.appsTableView!.reloadData()
    })
}

这是JSON的回应:

{
    "items": [
        {
            "id": 1,
            "name": "Sample 1"
        },
        {
            "id": 2,
            "name": "Sample 2"
        }
    ]
}

我希望debugPrint可以打印类似于JSON的东西,但它只打印unknown

如果我自己调试response.data,它似乎是编码的......

Optional(<7b226461 7461223a 5b7b2269 64223a36 2c226e61 6d6522......

然后我的results["items"].arrayObject!行出现此错误:

fatal error: unexpectedly found nil while unwrapping an Optional value

1 个答案:

答案 0 :(得分:2)

我建议抓住response.data,而不是抓住response.result.value。当您执行responseJSON时,Alamofire会为您执行JSON解析,您可以随意获取此解析对象。

Alamofire.request(.GET, url)
    .responseJSON { response in
        if let value = response.result.value {
            let json = JSON(value)
            self.delegate?.didReceiveAPIResults(json)
        }
}