Swift JSONSerialization作为Int代替Double

时间:2019-10-05 21:00:31

标签: swift jsonserializer

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

d = {i: dict(zip(dt_grab, dt_change))  for i, (dt_change, dt_grab) 
                                       in enumerate(zip(df.DateChange, df.DateGrab))}

df['New_Text'] = df[['Text']].T.replace(d, regex=True).T

In [30]: df[['New_Text']]
Out[30]:
                                           New_Text
0              Hey 11/04/1911  22|1|13 03/06/1919 d
1        things here 01/27/1918 or 03/27/1984 then
2  stuff 01/26/1912 01/15/1918 or 02/06/1917 so so

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

        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

1 个答案:

答案 0 :(得分:1)

JSON并非如此。 JSON在数字类型之间没有固有的区别。因此,您看到的JSON与放入其中的数据等效,因为300300.0之间没有区别。 (当然,如果您输入了300.1,则会看到类似300.1的内容。)

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