Самая замечательная вещь, которую мы получили в Swift 4 — это протокол Codable, который представляет собой typealias протоколов Encodable и Decodable, и классы JSONDecode и JSONEncode. Благодаря этому вы теперь можете преобразовывать множество JSON объектов, а также Property Lists в эквивалентные структуры Struct и классы Class без единой строки дополнительного кода. Наконец-то Swift 4 и новый Foundation ответили на вопрос, как нужно парсить JSON в Swift.
Между прочим, если вы наберете для поиска строку «swift json library», то вы получите в Github порядка 75 замечательных репозиториев. Но новое «родное» Codable решение Apple в Swift 4 превосходит их все. Далее в статье я сосредоточусь на JSON, потому что это наиболее значимая задача для разработчиков, и представлю примеры на Playground.
Код можно посмотреть на Github.
Основы.
Я начну с примера, представленного в знаменитой статье Сhris Eidhof «Parsing JSON in Swft» (перевод здесь) ( 2014 г.), в которой впервые была сделана попытка создания в Swift JSON парсера на основе понятий функционального программирования, но это было сложное решение. Позже Apple представила свой способ парсинга JSON с помощью класса JSONSerialization, который также отличался громоздкостью.
Сейчас мы увидим, как в Swift 4 эта проблема решается 3 строками кода.