在swift中parsingJSON数组

我正试图parsing下面的JSON

[ { "id": "5", "name": "Test", "team1": "thingy team", "team2": "clicky team", "category": "4", "end_date": "1415217600", "cat_name": "new thingy", "team1_bets": 1, "team2_bets": 1 } ] 

这是我从我的Web服务得到的JSON,我正在使用下面的代码来parsing它:

 let urlAsString = "http://codespikestudios.com/betting_app/bet/get_events/4" //let urlAsString = "http://api.topcoder.com/v2/challenges?pageSize=2" let url: NSURL = NSURL(string: urlAsString)! let urlSession = NSURLSession.sharedSession() let jsonQuery = urlSession.dataTaskWithURL(url, completionHandler: { data, response, error -> Void in if (error != nil) { println(error.localizedDescription) } var err: NSError? var jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as NSDictionary if (err != nil) { println("JSON Error \(err!.localizedDescription)") } println(jsonTime) }) jsonQuery.resume() 

我收到以下错误

操作无法完成。 (NSURLErrorDomain错误-1005。)致命错误:意外地发现零,而解包一个可选值

我怎么解决这个问题?

您的url返回以下JSON –

 [ { "id": "5", "name": "Test", "team1": "thingy team", "team2": "clicky team", "category": "4", "end_date": "1415217600", "cat_name": "new thingy", "team1_bets": 1, "team2_bets": 1 } ] 

最外面的方括号表示根对象是一个数组,因此尝试将JSONparsing的结果强制转换为NSDictionary会导致问题。

你的代码应该是 –

 let urlAsString = "http://codespikestudios.com/betting_app/bet/get_events/4" let url: NSURL = NSURL(string: urlAsString)! let urlSession = NSURLSession.sharedSession() let jsonQuery = urlSession.dataTaskWithURL(url, completionHandler: { data, response, error -> Void in if (error != nil) { println(error.localizedDescription) } var err: NSError? var jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as NSArray? if (err != nil) { println("JSON Error \(err!.localizedDescription)") } println(jsonResult!) }) jsonQuery.resume() 

从CFNetworking源代码,我看到-1005指kCFURLErrorNetworkConnectionLost = -1005。 所以你的连接出了问题