将 Alamofire NSData 解析为数组

Posted

技术标签:

【中文标题】将 Alamofire NSData 解析为数组【英文标题】:Parsing Alamofire NSData to Array 【发布时间】:2015-08-21 19:13:26 【问题描述】:

我正在尝试使用 Alamofire 从返回 JSON 数组的端点检索数据。我可以成功地获取数据(请参阅println() 成功的代码)但是它无法解析为以下数组:if let trackArrayData = data as? NSArray - 它正在触发println 正在触发的语句,但是它返回空。

提前致谢,代码如下:

func retrieveTrackArray(genre: String, completionHandler: (NSArray?, NSError?) -> Void) -> Self 
    let urlRequest = NSURLRequest(URL: NSURL(string: ApiService.apiEndpoint + genre)!)
    var trackArray:NSArray = []

    Alamofire.request(.GET, urlRequest, parameters: nil, encoding: .URL)
        .response  (request, response, data, error) in

            //todo handle other response codes

            if error == nil && response?.statusCode == 200 
                println(data); //data is populated Optional(<5b223334 31313438 3238222c 22333934 36373334 33222c22 32303036)
                if let trackArrayData = data as? NSArray 
                    trackArray = trackArrayData
                    println(trackArray) //returns empty: ()
                
                 else 
                //todo handle error here
            
            completionHandler(trackArray, error)
    
    return self

【问题讨论】:

【参考方案1】:

您需要使用responseJSON 响应序列化程序,或者您需要在data 上手动调用NSJSONSerialization。如果不通过某些 JSON 序列化程序传递字节,您将无法自动将 NSData 中的字节转换为 JSON。

【讨论】:

以上是关于将 Alamofire NSData 解析为数组的主要内容,如果未能解决你的问题,请参考以下文章

如何将 alamofire 返回 json 解析为 Swift 中的字符串数组?

Alamofire 获取 pdf 作为 NSData

如何使用 Alamofire 从服务器获取图像(不是 url 或 NSData)

Alamofire 快速接收并解析字符串数组

使用 SwiftyJSON 处理 Alamofire 异步请求

无法解析数据 JSON alamofire SwiftyJSON