Arrays 使用Swift 3中的嵌套数组解析JSON

Arrays 使用Swift 3中的嵌套数组解析JSON,arrays,json,swift,Arrays,Json,Swift,我发现这非常有用,但我注意到我的JSON结构有一个“weather”键数组(见红色箭头)。我能够解析JSON输出的其他部分,但是这个数组导致了问题。 问:为什么我不能使用在这个JSON数据的其他部分上工作的[String:Any]模式 这是我在控制台中的错误:无法将类型为“\uu NSSingleObjectArrayI”(0x112e04be0)的值强制转换为“NSDictionary”(0x112e05108) 该错误使问题变得相当清楚(即,在问题开始时查看输出。“weather”键的值不

我发现这非常有用,但我注意到我的JSON结构有一个“weather”键数组(见红色箭头)。我能够解析JSON输出的其他部分,但是这个数组导致了问题。

问:为什么我不能使用在这个JSON数据的其他部分上工作的
[String:Any]
模式

这是我在控制台中的错误:无法将类型为“\uu NSSingleObjectArrayI”(0x112e04be0)的值强制转换为“NSDictionary”(0x112e05108)


该错误使问题变得相当清楚(即,在问题开始时查看输出。“weather”键的值不是字典,而是字典数组

因此:

let weatherMain = parsedData["weather"] as! [String:Any]
需要:

let weatherMain = parsedData["weather"] as! [[String:Any]]

作为旁注,在你的应用程序中每次使用
都是一个等待发生的崩溃。你应该安全地展开并安全地转换可能与你想象的不同的值。我强烈建议你花一些时间仔细阅读Swift编程语言b中有关选项、类型转换和可选链接的部分ook.

您的问题不清楚。您的问题具体在代码中的什么位置?实际问题是什么?编译错误?运行时错误?意外结果?请具体说明。我更新了代码和问题以在控制台中显示问题。我得到了“线程8:信号SIGABRT”控制台中出现以下错误:无法将类型为“\uu NSSingleObjectArrayI”(0x112e04be0)的值强制转换为“NSDictionary”(0x112e05108)。感谢您快速回复并解释字典与字典数组。这是我有史以来第一次尝试使用JSON。您的答案非常准确。我是一名学习者,很容易被难倒。我会接受您的建议,不要强制展开。我应该养成用错误处理的方式将其包装起来的习惯。
let weatherMain = parsedData["weather"] as! [[String:Any]]