Не беспокойтесь, я просто хотел показать вам, как реализовать это в обоих направлениях. Лучше использовать соответствующий метод, чем взламывать его

еняю свой старый код синтаксического анализа 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. Какие-либо предложения?

Ответы на вопрос(2)

Ваш ответ на вопрос