JSON (JavaScript Object Notation) — это лёгкий, удобный для чтения формат обмена данными, который часто используется для передачи данных между сервером и клиентским приложением.
Swift предоставляет протокол Codable (комбинация Encodable и Decodable), который позволяет выполнять типобезопасный парсинг JSON без сторонних библиотек.
Базовый процесс:
CodableJSONDecoder для декодирования сырых JSON-данных в эту модельstruct User: Codable {
let id: Int
let firstName: String
}
let decoder = JSONDecoder()
let user = try decoder.decode(User.self, from: jsonData)
Когда JSON использует snake_case, а твоя Swift-модель использует camelCase, можно применить стратегию декодирования ключей:
decoder.keyDecodingStrategy = .convertFromSnakeCase
Для более точного контроля определи пользовательский enum CodingKeys внутри своей модели, чтобы вручную маппировать имена свойств:
struct User: Codable {
let firstName: String
enum CodingKeys: String, CodingKey {
case firstName = "first_name"
}
}
Вложенные JSON-объекты обрабатываются через определение отдельных типов, соответствующих протоколу Codable, и их использование в качестве свойств:
struct Response: Codable {
let user: User
let status: String
}
Поскольку декодирование может завершиться ошибкой, всегда оборачивай его в блок do-catch для корректной обработки:
do {
let user = try decoder.decode(User.self, from: jsonData)
} catch {
print("Decoding failed: \(error)")
}
Такой подход делает парсинг JSON чистым, типобезопасным и легко поддерживаемым, используя только встроенные фреймворки Swift.
Протокол Codable в Swift — это комбинация Encodable и Decodable, которая позволяет сериализовать и десериализовать JSON данные, используя единственное соответствие протоколу.
Новый — ещё не проверен сообществом
Вы