С протоколом Swift 4 Codable существует отличный уровень стратегии обработки данных и даты.
Учитывая JSON:
{
"name": "Bob",
"age": 25,
"tax_rate": "4.25"
}
Я хочу привести его в следующую структуру
struct ExampleJson: Decodable {
var name: String
var age: Int
var taxRate: Float
enum CodingKeys: String, CodingKey {
case name, age
case taxRate = "tax_rate"
}
}
Стратегия декодирования даты может преобразовать дату на основе строки в дату.
Есть ли что-то, что делает это с помощью Float на основе String?
В противном случае, я застрял с использованием CodingKey для ввода строки и использования вычисления:
enum CodingKeys: String, CodingKey {
case name, age
case sTaxRate = "tax_rate"
}
var sTaxRate: String
var taxRate: Float { return Float(sTaxRate) ?? 0.0 }
Такого рода нити заставляют меня больше обслуживать, чем, по-видимому, нужно.
Это самый простой способ или есть что-то похожее на DateDecodingStrategy для других преобразований типов?
Обновление: я должен отметить: я также прошел путь переопределения
init(from decoder:Decoder)
Но это в противоположном направлении, так как это заставляет меня делать все это для себя.