我是Swift的新手,正在尝试编写一个应用程序来解析网页中的json。但我得到的错误 “不能下标值的类型'[Dictionary]'”不能下标值的类型 - Swift 3
我该如何解决这个问题?它发生多次。以下是我的代码。谢谢!
func grabData(results: [Dictionary<String, Any?>]){
guard let resultList = results as? [Dictionary<String, Any?>] else { return }
for iResult in resultList {
var tempResult = SearchResult()
tempResult.studentId = self.getInt(dict: [iResult], string: "StudentId")
tempResult.LastName = self.getString(dict: [iResult], string: "LastName")
tempResult.FirstName = self.getString(dict: [iResult], string: "FirstName")
tempResult.Major = self.getString(dict: [iResult], string: "Major")
tempResult.Year = self.getString(dict: [iResult], string: "Year")
tempResult.GPA = self.getDouble(dict: [iResult], string: "GPA")
self.results.append(tempResult)
}
DispatchQueue.main.async {
self.listTableView.reloadData()
}
}
func getString(dict: [Dictionary<String, Any?>], string: String) -> String? {
if let result = dict[Dictionary<String, Any?>] as? String {
return result
}
return nil
}
func getInt(dict: [Dictionary<String, Any?>], string: String) -> Int? {
if let result = dict[string] as? Int {
return result
}
return nil
}
func getDouble(dict: [Dictionary<String, Any?>], string: String) -> Double? {
if let result = dict[string] as? Double {
return result
}
return nil
}
您可能想要使用库来解析JSON,这会让您的生活变得非常简单......我写了一个可在https://github.com/borchero/WebParsing上找到的库。 – borchero
避免在Swift词典中声明可选的值类型。他们不是很有意义。 – vadian