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の2番目のオブジェクトには"points"キーpointsがありませんが、GroceryProduct構造体ではオプションではないため、これは予期されることです。 質問は、JSONDecoder無効なオブジェクトを「スキップ」できるようにするにはどうすればよいですか?