Json Swift从字典的字典中删除可选项
我以JSON的形式从api获取数据。我得到一个dynamicTypeJson Swift从字典的字典中删除可选项,json,xcode,swift,api,Json,Xcode,Swift,Api,我以JSON的形式从api获取数据。我得到一个dynamicTypeSwift.Dictionary的变量,并调用这个变量myDictionary。当我要求打印(myDictionary[“keyA”])时,它返回与“keyA”关联的值(内部字典),但它以Swift.可选的形式返回 如何使用非可选的内部字典设置变量?或者如何访问内部字典值?所有字典访问都作为可选项返回,因为使用的键可能不存在于字典中,因此在这种情况下返回nil。您可以使用可选的强制转换作为?以及可选的绑定(如果let),以确保该
Swift.Dictionary的变量,并调用这个变量myDictionary
。当我要求打印(myDictionary[“keyA”])
时,它返回与“keyA”关联的值(内部字典),但它以Swift.可选的形式返回
如何使用非可选的内部字典设置变量?或者如何访问内部字典值?所有字典访问都作为可选项返回,因为使用的键可能不存在于字典中,因此在这种情况下返回nil
。您可以使用可选的强制转换作为?
以及可选的绑定(如果let
),以确保该值存在,它是预期的字典,并将其展开:
if let innerDictionary = myDictionary["keyA"] as? [NSObject: AnyObject] {
// if we get here, "keyA" is a valid key in myDictionary and
// we got the type right. innerDictionary is now unwrapped and ready
// to use.
}
我使用[NSObject:AnyObject]
作为innerDictionary类型。如果您对它了解更多,可以使用更具体的强制转换,例如as?[String:String]
如果您知道键和值的类型都是String
。如果您出错,可选强制转换将返回nil
,并且不会输入块,因为可选绑定将不会成功。您不能。默认情况下,字典中的任何内容都是可选的,因为当您请求某个键的值时,该键可能不存在,因此该值将为零。如果希望结果不是可选的,可以将其展开。内部字典是什么类型的?