从文本文件输入:
ID|ACTION|IID|SPK|DSI|OLID|NLD
1 | M | 1 | 1 | 1 | 1 | 1
预期产出:
{
"source": "PM",
"Timestamp": "4/10/2018 11:44:55 AM",
"tes":{
"id": 1,
"ac": "M",
"test": "1",
"key": "1",
"id": "1",
"nid": "1"
}
}
我在dataweave中尝试了下面的代码片段,但我在运行时遇到了异常。
<ee:transform doc:name="Transform Message" doc:id="2a7de32c-1b84-4419-826f-8099ce1dc241" >
<ee:message >
<ee:set-payload ><![CDATA[%dw 2.0
output application/json
input payload text/csv
---
payload map{
source:"PM",
"Timestamp": now() as String {format: "MM/dd/YYYY hh:mm:ss a"},
"tes":{
"id":$.ID,
"action":$.ACTION,
"IID":$.IID,
"SPK":$.SPK,
"DSI":$.DSI,
"OLID":$.OLID,
"NID":$.NLD
}
}
]]></ee:set-payload>
</ee:message>
</ee:transform>
消息:&#34;您调用了函数&#39; map&#39;使用以下参数:1:字符串(&#34; ID | ACTION | IID | SPK | DSI | OLID | NLD ...)2:函数(($:Any,$$:Any) - &gt; ???)
但它需要这些类型的参数:1:数组2:函数
5 |有效载荷图{| ...... 11 | }
追踪:在地图(第5行,第3列)的主要地方(行:5,列:11)&#34;评估表达式:&#34;%dw 2.0输出应用程序/ json indent = true输入有效负载文本/ csv
答案 0 :(得分:1)
在Mule中,DataWeave指令输入被忽略,因此设置输入mime类型没有用。另外,您不能像在Mule 3中那样设置阅读器属性。 在Mule 4中,您应按照文档页面https://docs.mulesoft.com/mule4-user-guide/v/4.1/dataweave-formats#reader_writer_properties中所述,在消息源中设置mime类型和阅读器属性。 然后,您可以将CSV格式的分隔符阅读器属性设置为管道。其他阅读器属性在https://docs.mulesoft.com/mule4-user-guide/v/4.1/dataweave-formats#reader-properties-for-csv
中进行了描述