Mule 3.9 Dataweave отбрасывает .00 от целого числа - PullRequest
0 голосов
/ 11 сентября 2018

Ниже приведен пример кода

<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:'#.###'}}

не работает

Ответы [ 2 ]

0 голосов
/ 23 октября 2018

Проверьте с помощью этого:

{
Book: payload.mybook as :string {format: ".00"}
}
0 голосов
/ 18 сентября 2018

числа JSON не сохраняют формат.Смотрите этот ответ для технического объяснения ограничений чисел в JSON, см. https://stackoverflow.com/a/38357877/721855 Если вам нужно сохранить фиксированное количество десятичных позиций, вы можете использовать вместо этого строку.Это то же самое, что печать форматированного десятичного числа.Печать преобразует в строку число.

...