将 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 从服务器获取图像(不是 url 或 NSData)