Mule 4.4社区版DataWeave XML转JSON报错求助
DataWeave XML转JSON代码报错排查与修正
错误分析
报错信息提示第5行逗号位置非法,核心原因是**if语句的满足分支直接返回多个键值对,未用大括号包裹为单个对象**。DataWeave语法要求if的每个分支必须是一个合法的单个表达式,直接罗列键值对会被解析为多个独立表达式,触发语法错误。
修正后的代码
%dw 2.0 output application/json writeAttributes=true --- if (payload.Result.EMPS? and payload.Result.EMPS.*EMP != []) { trackId: payload.Result.TRNO, empDetails: payload.Result.EMPS.*EMP map { empName: $.NAME, empAge: $.AGE } } else { null }
关键优化点
- 用
{}包裹if分支内的所有键值对,形成完整的JSON对象,符合DataWeave语法规范 - 优化判断条件:同时检查
EMPS节点是否存在、EMP子节点是否非空,避免潜在的空指针异常 - 保留
*EMP的遍历方式,正确处理XML中的多个EMP节点,生成数组格式的empDetails
内容的提问来源于stack exchange,提问作者GettingStarted With123
相关产品推荐
相关产品推荐

