我有一个Mule ESB项目,我以JSON格式获取数据并将其转换为CSV。在转换过程中,我想要替换'&'在其中一个属性中为'/'。我尝试了以下方法:
output.Department = input.department.replace('&', '/');
但是mule会抛出以下错误:
output.Department = input.department.replace('&', '/');" failed. (org.mule.api.expression.ExpressionRuntimeException)
org.mule.el.mvel.DataMapperExpressionLanguage:71 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/expression/ExpressionRuntimeException.html)
4. Message: Transform failed! (org.jetel.exception.TransformException)
org.jetel.component.DataRecordTransform:132 (null)
我也尝试了以下变体,但所有这些变体都失败并显示相同的错误消息:
output.Department = input.department.replace("&", "/");
编辑:输入字段“部门”的值将如下所示:'应用程序&开发团队'。目标系统不接受'&'并且'为什么我们需要将其更改为'/',以便输出值看起来像'应用程序/开发团队'。
我的环境是Windows 7,带有Mule ESB EE 3.6.2运行时的Anypoint Studio 5.1.2,我在Studio中运行它。有关如何用斜线('/')替换&符号的想法吗?
答案 0 :(得分:1)
这个表达对我有用。失败的唯一原因是department
为空。添加空检查:
output.Department = isnull(input.department) ? input.department : input.department.replace('&', '/');