我试图在必要时向映射添加零,但它不起作用。
这是我正在使用的有效载荷:
[
{
"groupName": "POSCH",
"groupMembers": [
{
"dealerNumber": "262",
"mainDealer": true
},
{
"dealerNumber": "243",
"mainDealer": false
}
]
},
{
"groupName": "PRUCKNER",
"groupMembers": [
{
"dealerNumber": "213",
"mainDealer": true
},
{
"dealerNumber": "262",
"mainDealer": false
}
]
}]
我目前正在写这个,以便仅在 maindealer 中过滤包含 true 的 dealerNUber。我相信这是一个很好的状态,但我不能添加零
%dw 2.0
output application/json
---
payload map {
groupName: $.groupName,
dealers: $.groupMembers filter $.mainDealer == true map {
dealerNumber: $.dealerNumber padRight(5, "0"),
locationName: $.locationName
}
}
为了让262变成00262.
但它给了我这个错误:
Invalid input ',', expected ')' for the enclosed expression. (line 7, column 48):
7| dealerNumber: $.dealerNumber padRight(5, "0"),
^
Location:
main (line: 7, column:48)
有一个 DataWeave 的几个问题。
leftPad
而不是 rightPad,因为您正试图在字符串的左侧添加零。您需要按原样在 dw::core::Strings
模块中导入它。DataWeave 支持两种前缀表示法
和中缀符号
(function (param1, param2))
用于函数调用。笔记 你只能对只接受的函数使用中缀符号 两个参数.
(param1 function param2)
在建议的更改之后,您的 DataWeave 应该如下所示:
%dw 2.0
import leftPad from dw::core::Strings
output application/json
---
payload map {
groupName: $.groupName,
dealers: $.groupMembers filter $.mainDealer == true map {
dealerNumber: leftPad($.dealerNumber,5, "0"),
locationName: $.locationName
}
}