Ios 在swift中解析JSON数组
我正在尝试解析以下JSONIos 在swift中解析JSON数组,ios,json,swift,Ios,Json,Swift,我正在尝试解析以下JSON [ { "id": "5", "name": "Test", "team1": "thingy team", "team2": "clicky team", "category": "4", "end_date": "1415217600", "cat_name": "new thingy", "team1_bets": 1,
[
{
"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,我使用以下代码对其进行解析:
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。)
致命错误:在展开可选值时意外发现nil
我怎样才能解决这个问题 从CFNetworking源代码中,我看到-1005指的是kCFURLErrorNetworkConnectionLost=-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
}
]
最外面的方括号表示根对象是数组,因此尝试将JSON解析结果强制转换为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()
您是否尝试在浏览器中打开url?它是否会给您带来类似的错误?是的,URL正在浏览器上运行在completionHandler的第一行设置一个断点,并检查返回的内容(数据),因此,只能使用对象
NSDictionary
?JSON可以将NSDictionary或NSArray作为其最外层的容器-您需要根据web服务返回的内容进行编码。