我有一个简单的csv
TYPE,DATE,NAME
SERIAL,20170808,TR
NUEROUS,20160608,WB
这是我将csv转换为hashmaps的arraylist(目前正在使用索引)的流程
<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头名进行解析。 e.g
operationType: payload.TYPE
怎么做?感谢
答案 0 :(得分: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>
当header = true时,您可以按名称访问输入中的字段。例如:payload.userName。
当header = false时,您必须按索引访问字段,首先引用条目,然后引用字段Ex:payload [107] [2]
希望这有帮助。