我最近开始学习 Swift,现在我正在尝试安全地解开来自可能包含或不包含该密钥的 JSON 响应的多个变量。
JSON 响应示例:
{
"products: [{
"foo": "foo"
"bar": "bar"
}, {
"foo": "foo"
}]
}
在这里,我正在尝试以下操作:
let dataTask = URLSession.shared.dataTask(with: myURL) { (data, response, error) in
guard let safeData = data else { return }
do {
let json = try JSONSerialization.jsonObject(with: safeData, options: .mutableLeaves)
if let jsonDict = json as? [String : Any] {
let productArray = jsonDict["products"] as? [[String : Any]]
for product in productArray! {
if let foo = product["foo"] as? String, let bar = product["bar"] as? String {
let prod = Product(foo: foo, bar: bar)
products.append(prod)
}
}
}
} catch {
print ("Error: \(error)")
}
}
如果值为 nil,我想要做的是给出bar
一个默认值(合并),例如"Not Available"
为了在标签中显示它。
是否可以?我怎么能那样做?