在使用 Swift4和 Codable 协议时,我遇到了以下问题——似乎没有办法允许 JSONDecoder
跳过数组中的元素。
例如,我有以下 JSON:
[
{
"name": "Banana",
"points": 200,
"description": "A banana grown in Ecuador."
},
{
"name": "Orange"
}
]
还有一个 可编程结构:
struct GroceryProduct: Codable {
var name: String
var points: Int
var description: String?
}
在解码这个 Json 的时候
let decoder = JSONDecoder()
let products = try decoder.decode([GroceryProduct].self, from: json)
结果 products
为空。这是意料之中的,因为 JSON 中的第二个对象没有 "points"
键,而 points
在 GroceryProduct
结构中不是可选的。
问题是我如何允许 JSONDecoder
“跳过”无效对象?