簡體   English   中英

快速從[String:AnyObject]以雙引號返回浮點值

[英]Float value returns with double quotes from [String: AnyObject] in swift

我不知道為什么當我使用[String: AnyObject]時float值總是帶有雙引號。 你們有一些方法可以使我得到正確的結果嗎?

let appliedLoyalty: Float = 1.05
let appliedWallet: Float = 0.55

let payLoad: [String: AnyObject] = ["custid": custid! as AnyObject, "discounts": ["loyalty": appliedLoyalty,"wallet": appliedWallet] as AnyObject] // custid is string value

print(payLoad)

當我打印payLoad時,浮點值用雙引號引起來。

["discounts": {
    "loyalty" = "1.05";
    "wallet" = "0.45";
}, "custid": "puma"]

將AnyObject替換為Any,如下所示:

let appliedLoyalty: Float = 1.05
let appliedWallet: Float = 0.55
let custID = "puma"
let payLoad: [String: Any] = ["custid": custID, "discounts": ["loyalty": appliedLoyalty,"wallet": appliedWallet]] // custid is string value

print(payLoad)

在此處輸入圖片說明

使用print(payLoad)將調用字典的description方法。 並且description方法的實現與控制台上打印的相同。 而不是打印字典,您應該使用JSONSerialization查看實際的json。 使用下面的代碼或使用斷點檢查在payLoad中存儲了什么

let jsonData = try? JSONSerialization.data(withJSONObject: payLoad, options: .prettyPrinted)
let jsonStr = String(data: jsonData!, encoding: .utf8)
print(jsonStr!)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM