我试图通过Alamofire从JSON到Swift 4中的结构。我已经设置了一个与JSON格式匹配的日期格式化程序,但是我收到了一个错误:Date string does not match format expected by formatter
我使用以下代码:
struct AgentEvent: Decodable {
let callref: Int?
let repdate: Date?
let parked: Bool?
let company: String?
}
let decoder = JSONDecoder()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
decoder.dateDecodingStrategy = .formatted(dateFormatter)
self.events = try! decoder.decode([AgentEvent].self, from: data!)
使用的示例JSON(在浏览器中运行方法时确认)是:
{"callref":142,
"company":"Test Company Ltd",
"repdate":"2019-01-25T17:21:00",...
我已经打破了代码,以确切地查看我正在尝试解码的数据(如果它已在某处翻译)并且日期格式正在传入,它是:“2019-01-25T17:21:00”所以我可以看到格式与格式化程序中的预期格式匹配。我看不出这里有什么问题?
事实证明,dateDecodingStrategy似乎不喜欢使用我正在使用的日期格式。我不得不编写一个自定义初始化程序并在那里处理格式。
现在工作正常。