将JSONSerialization快速转换为Int而不是Double

问题描述 投票:0回答:1

我有一个从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个回答
1
投票

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

如果客户想处理您的双打号码,那取决于客户。但是您不能输入Double。只能输入数字。

© www.soinside.com 2019 - 2024. All rights reserved.