【发布时间】:2015-09-30 21:29:55
【问题描述】:
我正在尝试从 API 解析 Json 数据:
{
"title": "Mr. Robot",
"first_aired": "2015-06-24",
"network": "USA Network",
"channels": [
{
"id": 12,
"name": "USA",
"short_name": "usa",
"channel_type": "television"
}
],
我使用的代码是:
var TVArray : [TVInfo] = []
var task : NSURLSessionTask?
func getJSON (urlString: String) {
let url = NSURL(string: urlString)!
let session = NSURLSession.sharedSession()
task = session.dataTaskWithURL(url) {(data, response, error) in
dispatch_async(dispatch_get_main_queue()) {
if (error == nil) {
self.updateJSON(data)
}
else {
}
}
}
task!.resume()
}
func updateJSON (data: NSData!) {
let JSONData = (try! NSJSONSerialization.JSONObjectWithData(data, options: []))
TVArray.removeAll(keepCapacity: true)
if let jsonArray = JSONData {
for j in jsonArray {
let title = jsonResult["title"] as! String
let firstAired = jsonResult["first_aired"] as! String
let network = jsonResult["network"] as! String
let channelName = JsonResult["channels"][0]["name"] as! String
let TV = TVInfo(title: title, firstAired: firstAired, network: network, channelName: channelName)
TVArray.append(TV)
}
}
collectionview.reloadData()
}
}
当我使用上面的代码时,我在'if let jsonArray = JsonData' 行前面收到错误'条件绑定的初始化程序必须具有可选类型,而不是'AnyObject''。我尝试了一些我在 StackOverflow 上看到的方法,比如链接中的方法: [Parsing JSON in swift 2.0 但这对我不起作用。我对 Swift 还是有点陌生,我真的不想使用 SwiftyJSON。这是解析此 JSON 数据的最佳方式还是有更好的方式?
【问题讨论】:
-
愿意分享导致错误的语句吗?
-
提示:在 Xcode 中,您可以通过选择代码和 control-i 来重新缩进代码。良好的缩进可以使代码更容易理解。
-
就是这样: if let jsonArray = JSONData { for j in jsonArray { let title = jsonResult["title"] as!字符串 ....}
-
感谢缩进提示
标签: json swift api parsing swift2