使用 Alamofire + Swifty 获取 JSON 数组JSON

Getting JSON array with Alamofire + SwiftyJSON

我真的是 Swift 的新手,抱歉,如果这是一个愚蠢的问题...似乎有很多关于这个的问题,但是 none 其中使用的是最新版本的 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

与其抢 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)
        }
}