如何在Swift中操作嵌套字典,例如JSON数据?

时间:2014-06-06 03:34:52

标签: json swift

我使用NSJSONSerialization来解析Swift应用程序中的JSON。但是,返回的字典包含一个复杂的,深层嵌套的结构,因此使用非常长的类型声明(例如Dictionary<String, Array<Dictionary<String, ....>>)是不切实际的。

在Swift中使用这样的结构是否有一种好方法,其中集合的结构非常复杂,其类型在运行时才知道?

3 个答案:

答案 0 :(得分:12)

只需将您的json数据引用作为NSDictionary:

var dict: NSDictionary = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as NSDictionary

然后你可以使用下标来引用它:

var myValue: NSString = dict["level1"]["level2"]

答案 1 :(得分:5)

myDictionary["accounts"]可能是可选的。尝试:myDictionary["accounts"]?["active"]?

答案 2 :(得分:4)

在Obj-C中我们可以写,

cityName = myDictionary[@"photos"][@"region"][@"city"]

正如以上几位发现的那样,以上内容并不适用于Swift,至少它从来没有适用于我。

以下是如何在Swift中执行此操作以访问NSDictionary中的三个索引的字符串,

let cityName = ((myDictionary!["photos"] as NSDictionary)["region"]! as NSDictionary)["city"]! as String`

我希望在Swift的下一次更新中,所有这些都可以减少到我们在Obj-C中所拥有的。