我正在尝试解析一个json。转换为[String,AnyObject?]失败。而[String,AnyObject]成功
if let jsonDictionary = try! NSJSONSerialization.JSONObjectWithData(responseData, options: NSJSONReadingOptions.MutableContainers) as? Dictionary<String,AnyObject?> {
print(jsonDictionary["output"])
}
else {
print("Parsing Error")
}
以上解析失败,而以下成功
if let jsonDictionary = try! NSJSONSerialization.JSONObjectWithData(responseData, options: NSJSONReadingOptions.MutableContainers) as? Dictionary<String,AnyObject> {
print(jsonDictionary["output"])
}
else {
print("Parsing Error")
}
我想知道为什么会这样。
答案 0 :(得分:2)
根据定义,Swift词典中的所有键和值都必须是非可选的。
Swift词典被桥接到基金会NSDictionary
,文档说
密钥和值都不能为零
顺便说一句:在Swift中,将给定键的值设置为nil
会删除键