处理字典对象中的空值
Handling null value in a dictionary object
我正在使用网络服务获取信息。当返回所述信息时,我将从 jason 接收到的数据转换为字典。
Dumping dict object 时,一些项目是这样到达的:
▿ (2 elements)
- key: "street1"
- value: <null> #4
我将如何读取这些数据并知道该值为 NULL
我试过以下方法:
let street1:String = dict?["street1"] as! String
失败:无法将类型 'NSNull' (0x10fbf7918) 的值转换为 'NSString' (0x10f202c60)。
数据可以有一个字符串值。所以我尝试了:
let street1:Any = dict?["street1"] as Any
当我这样打印 street1 时
街道 1:可选()
我得到以下信息
街道 1:可选()
所以我的问题是:
我将如何阅读这些数据并知道该值为 null
.
您可以使用 if let 进行此类 nil 检查。
试试这个:
if let street1 = dict?["street1"] as? String {
// If this succeeds then you can use street1 in here
print(street1)
}
更新:
var t_street1 = ""
if let street1 = dict?["street1"] as? String {
t_street1 = street1
}
不需要 else t_street1
自动为空,因为您将其分配为空。
我正在使用网络服务获取信息。当返回所述信息时,我将从 jason 接收到的数据转换为字典。
Dumping dict object 时,一些项目是这样到达的:
▿ (2 elements)
- key: "street1"
- value: <null> #4
我将如何读取这些数据并知道该值为 NULL
我试过以下方法:
let street1:String = dict?["street1"] as! String
失败:无法将类型 'NSNull' (0x10fbf7918) 的值转换为 'NSString' (0x10f202c60)。
数据可以有一个字符串值。所以我尝试了:
let street1:Any = dict?["street1"] as Any
当我这样打印 street1 时 街道 1:可选()
我得到以下信息 街道 1:可选()
所以我的问题是:
我将如何阅读这些数据并知道该值为 null
.
您可以使用 if let 进行此类 nil 检查。
试试这个:
if let street1 = dict?["street1"] as? String {
// If this succeeds then you can use street1 in here
print(street1)
}
更新:
var t_street1 = ""
if let street1 = dict?["street1"] as? String {
t_street1 = street1
}
不需要 else t_street1
自动为空,因为您将其分配为空。