我只是想知道是否可以使用datamapper / dataweave发出一个格式字符串,以便在数字上有一个固定的长度,并用填充零来完成长度?
类似
String.format(“%056”,variable_number);
我在datamapper上尝试了这个,但它不起作用。我错过了什么?
答案 0 :(得分:6)
D,
在dataweave中,您可以简单地格式化数字,如 -
data: 5 as :string {format:"00000"}
这将输出00005
。如果原始长度小于0的数字,则数字将用0填充。
例如。 123
- > 00123
。
希望有所帮助!
答案 1 :(得分:3)
要满足此要求,请拨打Global MEL Functions from DataWeave。
全局MEL函数:
<configuration doc:name="Configuration">
<expression-language>
<global-functions>
def zeroPad(variable_number) {
String.format("%05d", variable_number);
}
</global-functions>
</expression-language>
</configuration>
DataWeave脚本:
%dw 1.0
%output application/json
---
{
result: zeroPad(123)
}
答案 2 :(得分:0)
我有similiat要求,并通过首先使用带零的格式转换为字符串来完成。
上面给出的答案有效 data:5 as:string {format:“00000”}
如果出于某种原因你无法使用dataweave运算符,你可以通过使用java库编写全局函数并从dataweave调用它们来实现。
答案 3 :(得分:0)
在Dataweave中只需定义类似
Field: "12" as :number {format: "0000"}
输出将类似于0012