С Xcode 10.2 и iOS 12.x мы смогли извлечь десятичную из строки json. С Xcode 11.1 и iOS 13.1 он генерирует исключение
Ожидается декодировать Double, но вместо этого обнаруживается строка / данные.
class MyClass : Codable {
var decimal: Decimal?
}
, затем пытается проанализировать его
let json = "{\"decimal\":\"0.007\"}"
let data = json.data(using: .utf8)
let decoder = JSONDecoder()
decoder.nonConformingFloatDecodingStrategy = .convertFromString(positiveInfinity: "s1", negativeInfinity: "s2", nan: "s3")
do {
let t = try decoder.decode(MyClass.self, from: data!)
} catch {
print(error)
}
Если я меняю строку json как
let json = "{\"decimal\":0.007}"
Это работает, но опять же мы теряем точность. Есть идеи?