【问题标题】:Swift JSONSerialization as Int instead of DoubleSwift JSONSerialization 作为 Int 而不是 Double
【发布时间】:2020-02-03 17:33:14
【问题描述】:

我有一个从 Double 隐式转换为 Int 的请求。我需要保持参数格式不变。例如下面,我发送的金额为 300.0,当我打印出请求时它发送为 Int 300 而不是 Double。

        let params = [
            "id": "xxx",
            "amount": 300.0
            ] as [String : Any]
        let jsonData = try? JSONSerialization.data(withJSONObject: params)

        let url = URL(string: "BASE_URL")
        var request = URLRequest(url: url!)
        request.setValue("application/json", forHTTPHeaderField: "Content-Type")
        request.httpMethod = "POST"
        request.httpBody = jsonData

当我打印请求时,这就是我得到的:

 {"id":"xxx", "amount":300} 

Instead of {"id":"xxx", "amount":300.0}

【问题讨论】:

    标签: swift jsonserializer


    【解决方案1】:

    这不是 JSON 的工作方式。 JSON 在数字类型之间没有内在的区别。因此,您看到的 JSON 与您放入其中的数据是等价的,因为 300300.0 之间没有区别。 (如果你输入了300.1,当然,你会看到更像300.1的东西。)

    如果客户想要您的号码视为 Double,这取决于客户。但是你不能放一个 Double。你只能放一个数字。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-17
      • 1970-01-01
      • 2013-07-10
      • 2019-09-10
      • 1970-01-01
      • 2016-06-28
      相关资源
      最近更新 更多