13
如果单元素解码失败,则Swift JSONDecode解码数组也会失败
在使用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在GroceryProductstruct中不是可选的。 问题是如何允许JSONDecoder“跳过”无效对象?