小编juh*_*aja的帖子

从 JSON 中解析 Decimal 作为字符串

使用 Xcode 10.2 和 iOS 12.x,我们能够从 json 字符串中提取 Decimal。使用 Xcode 11.1 和 iOS 13.1 会引发异常

预期解码 Double,但发现了字符串/数据。

class MyClass : Codable {

     var decimal: Decimal?
 }
Run Code Online (Sandbox Code Playgroud)

然后尝试解析它

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)
 }
Run Code Online (Sandbox Code Playgroud)

如果我将 json 字符串更改为

let json = "{\"decimal\":0.007}"

它有效,但我们又失去了精度。有任何想法吗?

swift codable ios13

3
推荐指数
1
解决办法
2668
查看次数

标签 统计

codable ×1

ios13 ×1

swift ×1