Sobes.tech
Назад к вопросам
Junior — Middle
73

Объясните понятие Codable в контексте сериализации данных в Swift.

Компании, где спрашивали
LingualeoLingualeo

Ответ от нейросети

sobes.tech AI

В Swift протокол Codable объединяет два протокола — Encodable и Decodable. Он используется для удобной сериализации и десериализации данных, например, преобразования объектов в JSON и обратно.

Если структура или класс соответствует протоколу Codable, то Swift автоматически генерирует код для кодирования и декодирования всех свойств, что значительно упрощает работу с внешними форматами данных.

Пример:

struct User: Codable {
    let id: Int
    let name: String
}

// Кодирование в JSON
let user = User(id: 1, name: "Иван")
let encoder = JSONEncoder()
if let jsonData = try? encoder.encode(user) {
    print(String(data: jsonData, encoding: .utf8)!)
}

// Декодирование из JSON
let jsonString = "{\"id\":1, \"name\":\"Иван\"}"
let decoder = JSONDecoder()
if let data = jsonString.data(using: .utf8),
   let decodedUser = try? decoder.decode(User.self, from: data) {
    print(decodedUser.name) // Иван
}

Таким образом, Codable упрощает преобразование моделей данных в форматы для хранения или передачи и обратно.