在SWIFT中解析Google Calendar JSON

时间:2014-11-06 09:17:39

标签: ios json swift google-calendar-api

我是Swift开发的新手。我正在尝试构建一个基本应用,该应用会从Google日历中读取以JSON格式返回的Feed。

我可以使用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 个答案:

答案 0 :(得分:1)

如果在

之后放置断点
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