无法下标类型' [[String:AnyObject]]'索引类型'字符串'

时间:2016-11-16 07:09:32

标签: ios json swift api dictionary

我试图获取特定位置的温度,但在尝试从JSON中提取信息时,我会发现此错误:

  

无法下标类型' [[String:AnyObject]]'索引类型为' String'

代码:

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

我尝试了多种解决方案'发现松弛但似乎没有工作......

提前致谢!

2 个答案:

答案 0 :(得分:2)

您正在将类型转换为:

[[String: AnyObject]]

当你应该像这样投射时:

[String: AnyObject]

你正在这样做的方式将类型转换为包含字典的数组数组,当你想要将它作为一个字典数组转换为包含一个键作为一个强项而任何一个对象作为一个值。

希望这有助于:)

答案 1 :(得分:1)

它应该是[String : AnyObject]?您将其转换为[[String : AnyObject]]表示字典数组