在Swift 3中解析JSON数据
我试图用Swift 3解析来自Google Civic Information API的JSON数据,但一直遇到麻烦 这是我现在为parseData函数编写的代码:在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
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]?从右侧开始。一直遇到什么麻烦?编译器错误?运行时错误?意外的结果?电脑着火了?