2017-10-04 41 views
0

我有一个简单CSVMule-解析CSV基于CSV标题哈希映射的值araylist

TYPE,DATE,NAME SERIAL,20170808,TR NUEROUS,20160608,WB

这是我的用于转换到CSV的包含HashMap数组列表(当前使用索引)流动

<set-property propertyName="Content-Type" value="text/csv" 
mimeType="application/csv" doc:name="Property"/> 

    <dw:transform-message doc:name="Transform Message"> 
    <dw:input-payload doc:sample="sample_data/string.dwl" mimeType="application/csv"/> 

     <dw:set-payload><![CDATA[%dw 1.0 
%output application/java 
--- 
payload map ((payload , indexOfPayload) -> { 
operationType:payload[0], 
issueDate:payload[1], 
issueNumber:payload[2] 
})]]></dw:set-payload> 
     </dw:transform-message> 

事情是目前我正在使用索引,但什么时候头部CSV索引将被改变?所以我需要根据csv头名进行解析。例如

operationType: payload.TYPE 

如何做到这一点?谢谢

回答

2

您可以通过使用标题列名作为获取价值的关键来实现此目的。

<dw:transform-message doc:name="Transform Message"> 
      <dw:input-payload mimeType="application/csv"/> 
      <dw:set-payload><![CDATA[%dw 1.0 
%output application/java 
--- 
payload map ((payload , indexOfPayload) -> { 
operationType:payload.TYPE, 
issueDate:payload.DATE, 
issueNumber:payload.NAME 
})]]></dw:set-payload> 
     </dw:transform-message> 

Mule documentation

当标题=真然后你可以通过名字输入中访问字段的任何地方。例如:payload.userName。

当标题=假则必须通过索引来访问的字段,第一个引用该条目,然后领域,例如:有效载荷[107] [2]

希望这有助于。

+0

我已经把标题放入了'',它起作用了!非常感谢你 – Bubosam