Swift解析来自url的JSON
问题描述:
对于swift非常新颖,我试图解析JSON形式的url。我正在接收该对象,但它正在作为一堆数字返回。我如何将这些数字解码为实际的对象。Swift解析来自url的JSON
let requestURL: NSURL = NSURL(string: "http://api.themoviedb.org/3/search/movie?api_key=06f4ca4cd5f26636e0ac8eebce5b8773&query=fight+club&callback=testing&_=1456113299076")!
let urlRequest: NSMutableURLRequest = NSMutableURLRequest(URL: requestURL)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(urlRequest) {
(data, response, error) -> Void in
let httpResponse = response as! NSHTTPURLResponse
let statusCode = httpResponse.statusCode
if (statusCode == 200) {
if (statusCode == 200) {
do{
print(data)
let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .AllowFragments)
}catch {
print("Error with Json: \(error)")
}
}
}
}
task.resume()
答
错误,错误消息
错误域= NSCocoaErrorDomain代码= 3840“的东西看起来像一个 ‘真’,但不在身边人物0”出现
这意味着该字符串从一开始就不是有效的JSON(格式错误)。
解决方案:
出于某种原因不可理解JSON字符串被包裹在一个testing(...)
块。
您需要修整字节9(索引8)中的数据,直到倒数第二。
do{
let trimmedData = data!.subdataWithRange(NSRange(location:8, length: data!.length - 9))
let json = try NSJSONSerialization.JSONObjectWithData(trimmedData, options: .AllowFragments)
print(json)
}
...
PS:在完成块它强烈建议检查错误不是nil
得到statusCode
谢谢你的建议之前。 – mdmullendore