Я пытаюсь загрузить список статей и вставить их в табличный вид. Однако, похоже, у меня проблема с получением файла JSON и его разбор.Ошибка при разборе JSON в swift 2.0
Мой код выглядит следующим образом:
override func viewDidLoad() {
super.viewDidLoad()
self.downloadArticles()
self.tableView.reloadData()
}
func downloadArticles(){
var url: NSURL
url = NSURL(string: "https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20feed%20where%20url=%27www.abc.net.au%2Fnews%2Ffeed%2F51120%2Frss.xml%27&format=json")!
print(url)
let task = NSURLSession.sharedSession().dataTaskWithURL(url){
(data, response, error) in
if (error != nil){
print("Error \(error)")
} else{
self.parseArticleJSON(data!)
}
self.syncCompleted = true
self.tableView.reloadData()
}
task.resume()
}
func parseArticleJSON(articleJSON:NSData)
{
do{
let result = try NSJSONSerialization.JSONObjectWithData(articleJSON, options: NSJSONReadingOptions.MutableContainers) as? NSArray
//let jsonData:NSArray = (try NSJSONSerialization.JSONObjectWithData(articleJSON, options:NSJSONReadingOptions.MutableContainers) as? NSArray)!
let newArticlesArray = result as NSArray!
//NSLog("Found \(newArticlesArray.count) new articles!")
for article in (newArticlesArray as NSArray as! [NSDictionary])
{
print (article.objectForKey("title")! as? String)
//let a = Article (t: <#T##String#>, da: <#T##String#>, de: <#T##String#>, i: <#T##NSURL#>)
//articlesArray.addObject(a);
}
}catch {
print("JSON Serialization error")
}
}
В методе parseArticleJSON (я знаю, что это не все полностью закончена). Я получаю ошибку в строке:
for article in (newArticlesArray as NSArray as! [NSDictionary])
он говорит:
fatal error: unexpectedly found nil while unwrapping an Optional value
Я попытался сделать некоторые исследования здесь, на этих форумах, но я не смог найти ответ, который бы помочь мне поэтому мне было интересно, сможет ли кто-нибудь помочь мне.
Мне нужно использовать собственные быстрые методы JSON, чтобы сделать все это.
Заранее благодарен!
Привет, поскольку ваша переменная result может быть нулевой и необязательной, инструкция for ... должна использовать переменные с необязательными обертками тоже i.e 'as?'. Дайте ему попробовать ... –