Slide 10
Slide 10 text
Decode/Encodeを⾃前で書くと...
10
struct GroceryProduct: Codable {
let name: String
let points: Int
enum CodingKeys: String, CodingKey {
case name
case points
}
}
extension GroceryProduct: Decodable {
init(from: Decoder) throws {
let values = try decoder.container(keyedBy: CodingKeys.self)
self.name = try values.decode(String.self, forKey: .name)
self.points = try values.decode(Int.self, forKey: .points)
}
}
extension GroceryProduct: Encodable {
func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(self.name, forKey: .name)
try container.encode(self.points, forKey: .points)
}
}