java - 如何在 Apache Camel Bindy 中处理 CSV 文件中的不同记录?

标签 java csv apache-camel

我需要能够将以下 CSV 转换为对象。 Bindy 可以做到这一点吗?

H,header1,01/01/2012
D,test11,1.00,10.00
D,test12,2.00,20.00
D,test13,3.00,30.00
H,header2,01/02/2012
D,test21,1.00,10.00
D,test22,2.00,20.00
D,test23,3.00,30.00

我创建了两个模型“标题”和“详细信息”,最后我想要一个列表: 标题、详细信息、详细信息、详细信息、标题、详细信息、详细信息、详细信息对象。

当我将这些模型放在同一个包中并运行测试时,Bindy 似乎无法识别哪个模型是哪个模型,并且失败说:

java.lang.AssertionError: mock://queue.csv Received message count. Expected: <1> but was: <0>

这对于 Bindy 来说是可能的吗?

最佳答案

我实际上不认为这是开箱即用的?因为您需要一种方法(鉴别器)来确定一行是标题还是详细信息。这不是我们现在拥有的功能。

您可以拆分数据,这样就有一个标题 + 多个详细信息。但这需要在 Camel 中包含多个消息。

但是看起来你的结构相当简单。因此,只需使用一些好的老式 Java 代码通常就能达到目的。

然而,Apache Camel 项目喜欢贡献,因此请随意使用此用例打开 JIRA 票证,然后添加区分功能将是一个很好的补充。然后,处理不同类型的 CSV 记录也会更容易一些。 http://camel.apache.org/contributing.html

关于java - 如何在 Apache Camel Bindy 中处理 CSV 文件中的不同记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8987039/

相关文章:

java - 简单整数枚举

python - 如何将现有数据格式化为 python 3.5 中 csv 文件的列

java - Camel 测试 - java.lang.IllegalArgumentException : defaultEndpoint must be specified

java - 在 XML 中设置 Apache Camel 的属性

java - CodingBat 中奇怪的 Java 行为 (Java Logic-2 MakeChocolate)

javascript - 在html页面上显示java变量

java - 如何解决错误java.lang.RuntimeException : An error occured while executing doInBackground()?

python - 读取 CSV 并绘制彩色折线图

java - 使用新的 Java 8 Streams API 解析 CSV 文件中的多行行

java - 注册 Apache Camel 处理器的监听器