【问题标题】:Parsing Alamofire NSData to Array将 Alamofire NSData 解析为数组
【发布时间】: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
}

【问题讨论】:

    标签: swift alamofire


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2016-09-30
      • 2017-04-01
      • 1970-01-01
      • 2019-01-29
      • 1970-01-01
      • 2019-04-08
      • 1970-01-01
      • 2012-12-09
      • 1970-01-01
      相关资源
      最近更新 更多