在Swift 3中解析JSON数据

在Swift 3中解析JSON数据,json,swift,parsing,Json,Swift,Parsing,我试图用Swift 3解析来自Google Civic Information API的JSON数据,但一直遇到麻烦 这是我现在为parseData函数编写的代码: private func parseData(JSONData: Data) { do { var readableJSON = try JSONSerialization.jsonObject(with: JSONData, options: JSONSerialization.ReadingOptions

我试图用Swift 3解析来自Google Civic Information API的JSON数据,但一直遇到麻烦

这是我现在为parseData函数编写的代码:

private func parseData(JSONData: Data) {
    do {
        var readableJSON = try JSONSerialization.jsonObject(with: JSONData, options: JSONSerialization.ReadingOptions.mutableContainers) as! [String : Any]

        if let officials: Any = readableJSON["officials"] as? [String : Any] {

            for official in officials as? [String : Any] {

                let name = official["name"] as? String

                if let address = official["address"] as? [String : String] {

                    let line1 = address["line1"] as? String
                    let line2 = address["line2"] as? String
                    let line3 = address["line3"] as? String
                    let city = address["city"] as? String
                    let state = address["state"] as? String
                    let zipCode = address["zip"] as? String

                }

                let party = official["party"] as? String
                let phones = official["phones"] as? [String: Any]
                let urls = official["urls"] as? [String : Any]
                let photoURL = official["photoUrl"] as? String
                let emails = official["emails"] as? [String : Any]

                if let channels = official["channels"] as? [String : Any] {

                    for j in 0..<channels.count {

                        let channel = channels[j] as? [String : Any]
                        let type = channel["type"] as String
                        let id = channel["type"] as String

                    }
                }
            }
        }
    }
    catch { print(error) }
}
提前谢谢你的帮助

if let officials: Any = readableJSON["officials"] as? [String : Any] {

    for official in officials as? [String : Any] {

您正在尝试在任何类型的对象上循环。您可以在右侧正确地进行强制转换,但在左侧使用不太特定的类型覆盖它。您可以完全省略左侧类型,因为Swift的类型推断将知道您得到的是[String:Any]?从右侧开始。

一直遇到什么麻烦?编译器错误?运行时错误?意外的结果?电脑着火了?