我想用一些空字段解析一些数据。如果字符串的值为 null,则对于所有数据类型,它应该替换为"(空白(。如果值为零,则我想设置变量的默认值。在 JSON 中,我正在获得啤酒厂空值。
例如 JSON
{
"name": "Endeavor",
"abv": 8.9,
"brewery": null,
"style": "ipa"
}
我创建了这样的模型类。
struct Beer: Codable {
var name: String?
var brewery: String?
var style: String?
}
我想将给定的 json 解码为 Beer 类,那么如何使用默认值管理 Nil?
模型中的可选值完全没问题。
在解析 JSON 时,您可以:
-
使用 Swift 合并运算符
??
Brewery = someOptionalValue ?? ""
-
围绕可选创建自己的类别:
extension Optional { func getOrElse<T>(defaultValue: T) -> T { if let value = self? { return value as T } else { return defaultValue } } }
并将其用作
Brewery = someOptionalValue.getOrElse("")
-
或者你可以简单地使用三元运算符
编辑1:根据评论
按如下所示修改模型并访问breweryComputed
而不是brewery
struct Beer: Codable {
var name: String?
var brewery: String?
var style: String?
var breweryComputed : String {
get{
return (self.brewery ?? "")
}
}
}