我有一个从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}
不是JSON的工作方式。 JSON在数字类型之间没有固有的区别。因此,您看到的JSON与放入其中的数据等效,因为300
和300.0
之间没有区别。 (当然,如果输入300.1
,您会看到更像300.1
的内容。)
如果客户想处理您的双打号码,那取决于客户。但是您不能输入Double。只能输入数字。