我正在尝试使用mule表达式组件中的以下内容初始化地图:
#[message.payload = [ 'changeSet' : #[payload], 'sourceAndConnectionMap' : #[flowVars['sourceAndConnectionMap']]]]
根据以下页面,这看起来没问题,但不起作用 https://developer.mulesoft.com/docs/display/current/Mule+Expression+Language+Reference
只设置第一个键('changeSet'),并且由于某种原因,有效载荷(一个地图)变成一个包含地图的ArrayList ...我也可以用第二个键和valy初始化它,所以我知道解决flowVar没有问题。
关于我如何初始化这个不正确的地图,有什么基本的东西吗?
答案 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