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

+0

谢谢你的建议之前。 – mdmullendore