Swift JSONSerialization 为 Int 而不是 Double
Swift JSONSerialization as Int instead of Double
我有一个从 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。你只能输入一个数字。
我有一个从 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。你只能输入一个数字。