내가 가진 최선의 해결책은 이것이지만 인코딩/디코딩의 오버 헤드가 있습니다. 질문의 예에서 다음
extension Decodable {
init(_ any: Any) throws {
let data = try JSONSerialization.data(withJSONObject: any, options: .prettyPrinted)
let decoder = JSONDecoder()
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:sszzz"
decoder.dateDecodingStrategy = .formatted(dateFormatter)
self = try decoder.decode(Self.self, from: data)
}
}
결과는
let person = Person(from: dictionary)
당신이 다른 방법으로가는에 관심이 있다면
다음이 도움이 될 것
https://stackoverflow.com/a/46329055/1453346