Есть ли способ сообщить JSONDecoder о преобразовании входящих десятичных знаков в строки?
public struct Transaction: Decodable
{
public let total: NSDecimalNumber?
enum CodingKeys: String, CodingKey {
case total = "AMOUNT"
}
public init(from decoder: Decoder) throws
{
let values = try decoder.container(keyedBy: CodingKeys.self)
let total = try values.decode(Decimal.self, forKey: .total)
self.total = NSDecimalNumber(decimal: total);
}
}
Подумайте, что произойдет, если СУММА будет выглядеть примерно так: 397289527598234759823475455622342424358363514,42.
Я полагаю, что с кодом, который у меня есть, я бы получил исключение nonConformingFloatDecodingStrategy без возможности восстановления после этого или потери точности.
Борьба вокруг идиотского быстрого Decimal задокументирована повсюду. в частности здесь:
String
в вашемJSON
для начала, иначе он сначала скроет его вDouble
, а затем в ваш тип. - person user28434'mstep   schedule 28.06.2019