Вступить в клуб →
лёгкаявопросСеть, данные и конкурентность

Ключи snake_case в JSON и camelCase в модели Decodable

Сервер отдаёт:

{"user_id": 42, "first_name": "Иван"}

Модель объявлена так:

struct User: Decodable {
    let userId: Int
    let firstName: String
}

let user = try JSONDecoder().decode(User.self, from: data)

Что произойдёт при декодировании?

  • Декодирование выбросит keyNotFound: нужны CodingKeys или convertFromSnakeCase
  • Декодирование пройдёт: JSONDecoder по умолчанию приводит snake_case к camelCase
  • userId получит 0, firstName — пустую строку, ошибки не будет
  • Ошибки не будет, но объект создастся только если оба свойства объявить как var

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела