2015-11-06 42 views
-1

我需要非常簡單的JSON對象或JSON到我的Swift代碼中的字典轉換。這裏是我的代碼來測試我的系列化:簡單的JSON序列化與斯威夫特2.0

let data = "{\"foo\":\"bar\"}" 
    let dataData = data.dataUsingEncoding(NSUTF8StringEncoding) 
    do { 
     let json = try NSJSONSerialization.JSONObjectWithData(dataData!, options: .AllowFragments) as? [String:String!] 
     print(json?["foo"]) 
    } catch let error as NSError { 
     NSLog("Unable to parse json, \(error), \(error.userInfo)") 
    } 

此代碼生成:

Optional(foo) 

什麼我需要做的擺脫Optional(foo)和剛剛獲得:

foo 
+6

你需要學習[選配](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/TheBasics.html#// apple_ref/DOC/UID/TP40014097-CH5-ID330)。這是一個非常重要的Swift功能。 – Moritz

+1

謝謝你,會馬上檢查出來。 –

回答

2

它可能是「foo」沒有定義並返回nil。所以這就是爲什麼它被存儲爲可選。你需要打開變量foo。安全的方式來做到這一點:

if let foo = json?["foo"] { 
    print(foo) 
}