在转换 JSON 数组时展开可选值时意外发现 nil

unexpectedly found nil while unwrapping an Optional value while converting JSON Array

当我尝试将 Json 字符串转换为字典时,出现致命错误:在展开可选值时意外发现 nil。

self.res = Jsn.convertStringToDictionary(self.sub)!

sub = [{"CityId":6,"CityName":"Ankara"},{"CityId":34,"CityName":"伊斯坦布尔"}]

函数是:

func convertStringToDictionary(text: String) -> [String:AnyObject]? {
    if let data = text.dataUsingEncoding(NSUTF8StringEncoding) {
        do {
            return try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions()) as? [String:AnyObject]
        } catch {
            print(error)
        }
    }
    return nil
}

你能帮我解决这个问题吗?先感谢您!

您应该将其转换为 [[String:AnyObject]] 而不是 [String:AnyObject],因为它是 字典数组。

尝试使用

return try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions()) as? [[String:AnyObject]]