簡體   English   中英

Dataweave始終輸出帶有兩位小數的JSON數字

[英]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.

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