2017-12-20 62 views
0

[String: AnyObject]を使用したときに浮動小数点値が常に二重引用符で囲まれている理由はわかりません。あなたは正しい結果を得るためにいくつかの方法を持っていますか?即時の[String:AnyObject]からの二重引用符で浮動小数点値が返される

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を印刷すると、float値は二重引用符で囲まれます。

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

答えて

3

内部に格納されているかどうか確認するためのコードや使用ブレークポイントの下に使用し、以下のような任意でANYOBJECTを交換してください:あなたの貴重な答えを

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) 

enter image description here

+0

感謝。それは正常に動作しています。 – Sabs

+0

Wlcm :) Happieeコーディング... – ivarun

+0

ありがとう@ivarun – Sabs

0

あなたが辞書のdescriptionメソッドが呼び出されprint(payLoad)を使用しています。 descriptionメソッドの実装は、コンソールに表示されるのと同じです。辞書を印刷する代わりにJSONSerializationを使用して実際のJSONを表示する必要があります。 payLoad

let jsonData = try? JSONSerialization.data(withJSONObject: payLoad, options: .prettyPrinted) 
let jsonStr = String(data: jsonData!, encoding: .utf8) 
print(jsonStr!) 
関連する問題