DataWeave中使用padRight为经销商编号补零报错求助
DataWeave映射中经销商编号补零失败报错解决
输入Payload
[{ "groupName": "POSCH", "groupMembers": [{ "dealerNumber": "262", "mainDealer": true }, { "dealerNumber": "243", "mainDealer": false } ] }, { "groupName": "PRUCKNER", "groupMembers": [{ "dealerNumber": "213", "mainDealer": true }, { "dealerNumber": "262", "mainDealer": false } ] }]
错误的DataWeave代码
%dw 2.0 output application/json --- payload map { groupName: $.groupName, dealers: $.groupMembers filter $.mainDealer == true map { dealerNumber: $.dealerNumber padRight(5, "0"), locationName: $.locationName } }
报错信息
Invalid input ',', expected ')' for the enclosed expression. (line 7, column 48):
7| dealerNumber: $.dealerNumber padRight(5, "0"),
^
Location:
main (line: 7, column:48)
问题分析
- 语法错误:
padRight是String类型的实例方法,必须通过点符号(.)调用,不能直接用空格衔接原字符串和函数。 - 函数误用:需求是将编号左侧补零至5位(如"262"→"00262"),但
padRight是在字符串右侧补零,会得到"26200",不符合预期,应使用padLeft函数。
修正后的代码
%dw 2.0 output application/json --- payload map { groupName: $.groupName, dealers: $.groupMembers filter $.mainDealer == true map { dealerNumber: $.dealerNumber.padLeft(5, "0"), locationName: $.locationName } }
效果说明
修正后的代码会过滤出mainDealer为true的经销商,并将其dealerNumber左侧补零至5位,比如原编号"262"会转换为"00262",符合需求。
内容的提问来源于stack exchange,提问作者Pedro
相关产品推荐
相关产品推荐

