【问题标题】:Mule 3.9 Dataweave droping .00 from integerMule 3.9 Dataweave 从整数中删除 .00
【发布时间】:2019-02-15 22:33:18
【问题描述】:

下面是我的示例代码

<dw:transform-message doc:name="Transform Message" >
        <dw:set-payload><![CDATA[ %dw 1.0
                 %output application/json skipNullOn = "everywhere"
                 %function addTrailingZeros (numberWithoutTrailingZeros) (
                        numberWithoutTrailingZeros as :number  {class: "java.lang.BigDecimal"} 
                    )
                 ---
                 "test" : addTrailingZeros(12.00)
        ]]></dw:set-payload>
    </dw:transform-message>

我得到的输出是

{
"test": 12
}

但我想要这个 { “测试”:12.00 }

我尝试使用 {format:"#.00"} 但它不起作用。如果你通过了 12.01 它的工作。

请在这个问题上帮助我。 最简单的例子

{"test" :  7.00 as :number {format:'#.###'}}

不工作

【问题讨论】:

标签: json mule dataweave


【解决方案1】:

JSON 数字不保留格式。有关 JSON 中数字限制的技术说明,请参阅此答案,请参阅 https://stackoverflow.com/a/38357877/721855 如果您需要保留固定数量的小数位,您可以改用字符串。这与打印格式化的十进制相同。打印将数字转换为字符串。

【讨论】:

    【解决方案2】:

    用这个检查:

    {
    Book: payload.mybook as :string {format: ".00"}
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-11
      • 2020-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多