使用dataweave

时间:2016-05-14 19:20:50

标签: mule mule-studio anypoint-studio dataweave

请参阅此dataweave窗口图片: - dataweave window image

我正在尝试使用dataweave将CSV转换为JSON,但即使是最简单的转换,它也会自动创建一个空标记。我可以在预览窗口中看到它。当我运行此应用程序时,我收到此错误 *

  

异常堆栈是:   1. 452(java.lang.ArrayIndexOutOfBoundsException)com.mulesoft.weave.reader.CharArraySourceReader:21(null)   2. 452(java.lang.ArrayIndexOutOfBoundsException)。消息有效负载的类型为:WeaveMessageProcessor $ WeaveOutputHandler   (org.mule.api.MessagingException)
  org.mule.execution.ExceptionToMessagingExceptionExecutionInterceptor:32

     

*************** *********************************根异常堆栈跟踪:java.lang.ArrayIndexOutOfBoundsException:   452在   com.mulesoft.weave.reader.CharArraySourceReader.lookAheadAscii(CharArraySourceReader.scala:21)     在   com.mulesoft.weave.reader.csv.parser.CSVParser.parse(CSVParser.scala:132)     在   com.mulesoft.weave.reader.csv.parser.CSVParser.elementAt(CSVParser.scala:61)     在   com.mulesoft.weave.reader.csv.parser.CSVParser.contains(CSVParser.scala:38)     在   com.mulesoft.weave.reader.csv.CSVRecordsValue $$匿名$ 1.hasNext(CSVReader.scala:58)     在scala.collection.Iterator $ class.toStream(Iterator.scala:1188)at   com.mulesoft.weave.reader.csv.CSVRecordsValue $$匿名$ 1.toStream(CSVReader.scala:56)

这是我正在使用的样本csv

SpreadsheetKeyEmployee,Position,EffectiveDate,BonusPlan,Amount,Currency,IgnorePlanAssignment
1,18211,2016-05-01,BONUS_PLAN1,150,USD
2,18212,2016-05-01,BONUS_PLAN2,150,USD
3,18213,2016-05-01,BONUS_PLAN3,150,USD
4,18214,2016-05-01,BONUS_PLAN4,150,USD

我认为我可能在读者配置上犯了一些错误(对于csv)在论坛中讨论了类似的问题,但这并没有帮助https://forums.mulesoft.com/questions/36378/dataweave-example-of-csv-to-json.html

3 个答案:

答案 0 :(得分:0)

我已尝试重新创建您的方案但无法复制它,这是我使用过的数据编辑配置并且它可以正常工作。

[_]

答案 1 :(得分:0)

可能是dataweave无法正确处理窗口行结尾的情况。你能尝试用\ n替换windows新行分隔符,如下所示: #[payload.replace(" \ r \ n"," \ n")] 您可以在dataweave之前将上述MEL表达式放在set-payload中。

答案 2 :(得分:-1)

您需要解析csv文件并将其映射到dataweave组件中的JSON对象。 检查下面的链接

https://dzone.com/articles/csv-xml-json-in-mulesoft