[英]Dataweave Always output JSON number with two decimal places
我在Dataweave中通過xml獲得了以下數字。
<b:AmountValue>180.90</b:AmountValue>
我使用Dataweave嘗試輸出一個帶有兩個小數位的代表json編號(代表貨幣)。
這是我的Dataweave表達式的樣子……
amount: $.AmountValue as :number as :string {format: ".00"} as :number
輸出json丟失尾隨零。
i.e. "amount":180.9
如何將Dataweave表達式更改為始終有兩個小數位?
還是我誤解了json數字類型?
謝謝
如果您可以將數量作為字符串使用,則將最后一個as :number
遠程
amount: $.AmountValue as :number as :string {format: ".00"}
如果您只放入amount: $.AmountValue as :number
會發生什么?
我在Anypoint Studio的預覽版上嘗試了此操作,但看不到丟失尾隨的0。而且我使用的是最新版本。
我也對此進行了測試,並且可以正常工作。
如果您嘗試這樣做: 8.2 as :string {format: "0.00"} as :number
然后再加上小數點后一位。
如果輸出到application / json或application / XML,則會看到打印出的兩位小數8.20
。 如果輸出到application / java,則它是一個double,並且您將必須決定如何打印出double。
如果您將8.2 as :number
,則它將輸出為8.2
。
如前所述,從:string到:number的強制轉換將使結尾的0掉線。Dataweave支持使用octothorp指示的:number格式。
下面的代碼片段將產生所需的兩位小數。
amount: $.AmountValue as :number { format: "#.##"}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.