在SWIFT中解析Google日历JSON
问题描述:
我是Swift开发的新品牌。我正在尝试构建一个基本应用程序,该应用程序将从Google日历中读取以JSON格式返回的供稿。在SWIFT中解析Google日历JSON
我能够使用此线程中描述的NSURLConnection.sendAsynchronousRequest调用:Make REST API call in Swift,我得到了某种结果。
我的问题是我无法将JSON解析为一些有意义的对象,我可以从中创建即将发生的事件列表。
我的代码这一步是:
var url : String = "some url"
var request : NSMutableURLRequest = NSMutableURLRequest()
request.URL = NSURL(string: url)
request.HTTPMethod = "GET"
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue(), completionHandler:{ (response:NSURLResponse!, data: NSData!, error: NSError!) -> Void in
var error: AutoreleasingUnsafeMutablePointer<NSError?> = nil
let jsonResult: NSDictionary! = NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions.MutableContainers, error: error) as? NSDictionary
if (jsonResult != nil){
// No idea how to parse this object as it seems to be a NSDictionary but battling to interact with it.
}
else
{
}
})
任何帮助将不胜感激。
答
如果你把一个断点后
let jsonResult: NSDictionary! = NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions.MutableContainers, error: error) as? NSDictionary
,那么你就可以看到字典的键/值对。我复制/粘贴你的代码,看到以下内容:
您可以通过使用jsonResult.objectForKey("keyName")
访问值。我也打算使用as DataType
低调。
例)
let encoding = jsonResult.objectForKey("encoding") as String
let version = jsonResult.objectForKey("version") as String
let feed = jsonResult.objectForKey("feed") as NSDictionary
+0
jsonResult.objectForKey(“keyName”)是他们在这里为我和我失踪的关键。我发现我试图以不正确的方式读取对象。 – 2014-11-06 20:34:31
你不应该使用日历的GData供稿。 GData关闭日期是今年11月17日。查看v3版本,而不是:https://developers.google.com/google-apps/calendar/ – luc 2014-11-08 21:09:18
非常感谢 - 非常有帮助..我不知道他们会结束它。 – 2014-11-09 02:20:38