在转换为Dictionary <string,anyobject?>时,NSJSONSerialization失败。在转换为Dictionary <string,anyobject>时成功

时间:2016-04-21 12:34:23

标签: json swift nsjsonserialization

我正在尝试解析一个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")
   }

我想知道为什么会这样。

1 个答案:

答案 0 :(得分:2)

根据定义,Swift词典中的所有键和值都必须是非可选的。

Swift词典被桥接到基金会NSDictionary,文档说

  

密钥和值都不能为零

顺便说一句:在Swift中,将给定键的值设置为nil会删除键