在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 
    { 

    } 
}) 

任何帮助将不胜感激。

+1

你不应该使用日历的GData供稿。 GData关闭日期是今年11月17日。查看v3版本,而不是:https://developers.google.com/google-apps/calendar/ – luc 2014-11-08 21:09:18

+0

非常感谢 - 非常有帮助..我不知道他们会结束它。 – 2014-11-09 02:20:38

如果你把一个断点后

let jsonResult: NSDictionary! = NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions.MutableContainers, error: error) as? NSDictionary 

,那么你就可以看到字典的键/值对。我复制/粘贴你的代码,看到以下内容:

Debugger

您可以通过使用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