使用Mule表达式语言初始化地图

时间:2015-08-17 22:09:04

标签: mule

我正在尝试使用mule表达式组件中的以下内容初始化地图:

  #[message.payload = [ 'changeSet' : #[payload], 'sourceAndConnectionMap' : #[flowVars['sourceAndConnectionMap']]]]

根据以下页面,这看起来没问题,但不起作用 https://developer.mulesoft.com/docs/display/current/Mule+Expression+Language+Reference

只设置第一个键('changeSet'),并且由于某种原因,有效载荷(一个地图)变成一个包含地图的ArrayList ...我也可以用第二个键和valy初始化它,所以我知道解决flowVar没有问题。

关于我如何初始化这个不正确的地图,有什么基本的东西吗?

1 个答案:

答案 0 :(得分:0)

在MEL中,应创建地图,如:

#[{'key':'value', 'key1':'value1'}]

如果你这样做

#[[]]

这只是一个元素列表。

其他评论,如果您已经在:

#[]

您无需再次添加。在你的例子中,你有几次。

请通过Mule调试器运行(在日志中放置制动点),您将看到差异。

<flow name="test> 
<set-payload value="#[{'key':'value', 'key1':'value1'}]" doc:name="Set Payload"/> 
<logger level="INFO" doc:name="Logger"/> 
<set-payload value="#[{'key':'value', 'key1':payload}]" doc:name="Copy_of_Set Payload"/> 
<logger level="INFO" doc:name="Copy_of_Logger"/> 
<set-payload value="#[['key','value', 'key1','value1']]" doc:name="Copy_of_Set Payload"/> <logger level="INFO" doc:name="Logger"/>
</flow>

HTH