Dataweave始终输出带有两个小数位的JSON号

时间:2017-06-09 07:11:58

标签: json mule dataweave

我在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数字类型?

感谢

4 个答案:

答案 0 :(得分:1)

如果您可以将金额作为字符串

,那么远程使用as :number
amount: $.AmountValue as :number as :string {format: ".00"}

答案 1 :(得分:0)

如果仅放置amount: $.AmountValue as :number

会发生什么

我在任意点工作室的预览中试过这个,并且没有看到丢失尾随0.我也在使用最新版本。

答案 2 :(得分: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

答案 3 :(得分:0)

如前所述,从:string到:number的强制转换将使结尾的0掉线。Dataweave支持使用八倍速定法规定的:number格式。

下面的代码片段将产生所需的两位小数。

 amount: $.AmountValue as  :number { format: "#.##"}