Не беспокойтесь, я просто хотел показать вам, как реализовать это в обоих направлениях. Лучше использовать соответствующий метод, чем взламывать его
еняю свой старый код синтаксического анализа JSON на Swift Codable и сталкиваюсь с небольшим затруднением. Я думаю, это не столько вопрос с кодируемостью, сколько вопрос DateFormatter.
Начните со структуры
struct JustADate: Codable {
var date: Date
}
и строка JSON
let json = """
{ "date": "2017-06-19T18:43:19Z" }
"""
теперь давайте расшифруем
let decoder = JSONDecoder()
decoder.dateDecodingStrategy = .iso8601
let data = json.data(using: .utf8)!
let justADate = try! decoder.decode(JustADate.self, from: data) //all good
Но если мы изменим дату так, чтобы она имела доли секунды, например:
let json = """
{ "date": "2017-06-19T18:43:19.532Z" }
"""
Теперь это ломается. Даты иногда возвращаются с долями секунды, а иногда нет. Для решения этой проблемы я использовал в коде отображения функцию преобразования, которая опробовала оба формата даты с дробными секундами и без них. Однако я не совсем уверен, как подойти к нему, используя Codable. Какие-либо предложения?