2017-09-20 8 views

答えて

2

私が持っている最良のソリューションはこれですが、エンコード/デコードのオーバーヘッドがあります。問題の例から、次の

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

関連する問題