2014-11-06 91 views
-1

我是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

回答

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 
+0

jsonResult.objectForKey(「keyName」)是他們在這裏爲我和我失蹤的關鍵。我發現我試圖以不正確的方式讀取對象。 – 2014-11-06 20:34:31