我正在尝试获取特定位置的温度,但在尝试从 JSON 中提取信息时,我会发现此错误:
无法使用“String”类型的索引为“[[String : AnyObject]]”类型的值添加下标
代码:
let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as! [String : AnyObject]
if let mainDictionary = json["main"] as? [[String : AnyObject]]
{
if let temp = mainDictionary["temp"] as! String
{
print(temp)
}
}
错误出现在以下行:
if let temp = mainDictionary["temp"] as! String
我尝试了在 slack 上找到的多种“解决方案”,但似乎都不起作用......
您正在将类型转换为:
[[String: AnyObject]]
当你应该像这样投射它时:
[String: AnyObject]
当您希望将类型转换为包含强键和任何对象作为值的字典数组时,您执行此操作的方式会将类型转换为包含字典的数组的数组。
希望这有帮助:)
应该是
[String : AnyObject]
?您将其转换为 [[String : AnyObject]]
表示字典数组