使用NSJSONSerializer

时间:2017-02-25 01:36:26

标签: json swift cocoa cocoa-touch

我正在尝试解析看起来像这样的JSON结构:

{"amount": -9.45}

使用JSONSerializer,金额将被解析为浮点数,从而导致数字出错。这是我目前的代码:

import Foundation

let jsonData = "{\"amount\": -9.45}".data(using: .utf8)!
let jsonObject = try! JSONSerialization.jsonObject(with: jsonData, options: []) as! [String: Any]
jsonObject["amount"] // -9.449999999999999

有没有办法可以获取被解析为浮点数的基础字符串,以便我自己解析它?

注意:

  • 这是财务数据,因此我想将其解析为Int或Decimal。
  • 我无法控制数据来源。
  • 我正在尝试避免预处理数据/编写自己的JSON解析器。

编辑:在审核了Apple提供的Swift version of JSONSerialization代码作为开源基础项目的一部分后,我不相信使用库存类可以解决这个问题。我made a patched version of the class将所有数字解析为Decimal而不是IntDouble,这解决了我的问题。

0 个答案:

没有答案