解析 json 时对成员 'subscript' 的引用不明确

Ambiguous reference to member 'subscript' when parsing json

我刚刚更新到 Xcode 8.0/Swift 3,我收到了这条消息

Ambiguous reference to member 'subscript'

这一行:

let rootResults = rootDictionary["results"] as? [[NSObject: AnyObject]]

其余代码如下所示:

func parseJSON(data: NSData) {
    do {
        let json = try JSONSerialization.jsonObject(with: data as Data, options: .mutableContainers)
        if let rootDictionary = json as? [NSObject: AnyObject],
            let rootResults = rootDictionary["results"] as? [[NSObject: AnyObject]]
        {

            for childResults in rootResults {

                if let firstName = childResults["first_name"]! as? String {
                    let customerFirstName = firstName
                    customerData["firstName"] = customerFirstName
                }
                if let lastName = childResults["middle_name"]! as? String {
                    let customerLastName = lastName
                    customerData["middleName"] = customerLastName
                }
                if let lastName = childResults["last_name"]! as? String {
                    let customerLastName = lastName
                    customerData["lastName"] = customerLastName
                }
                if let nameSuffix = childResults["name_suffix"]! as? String {
                    let customerSuffix = nameSuffix
                    customerData["nameSuffix"] = customerSuffix
                }

            }
        }
    } catch {
        print(error)
    }
}

我看过其他类似的问题,但它们与 json 解析无关。 我将不胜感激任何帮助。 谢谢!

在Swift3中,大部分隐式类型转换被移除。 这使得字符串文字无法自动转换为 NSObject.

尝试将代码中的 [NSObject: AnyObject] 替换为 [String: AnyObject]