gpt4 book ai didi

java - 如何在 Apache Camel 中记录 csv 的内容?

转载 作者:行者123 更新时间:2023-12-02 11:01:57 26 4
gpt4 key购买 nike

我有以下代码

DataFormat bindy = new BindyCsvDataFormat(Employee.class);
from("file:src/main/resources/csv2?noop=true").routeId("route3").unmarshal(bindy).to("mock:result").log("${body[0].name}");

我正在尝试记录 csv 文件的每一行,目前我只能对其进行硬编码以进行打印。

即使我不知道 csv 的行数,我是否也必须使用 Loop ?或者我必须使用处理器吗?实现我想要的最简单的方法是什么?

最佳答案

解码步骤是生成一个交换,其主体是元组列表。因此,您可以简单地使用 Camel splitter 将原始交换分割为 1-N 个子交换(列表中的每行/项目一个),然后记录以下每一行:

from("file:src/main/resources/csv2?noop=true")
.unmarshal(bindy)
.split().body()
.log("${name}");

如果您不想更改原始消息,可以使用窃听模式来记录交换的副本:

from("file:src/main/resources/csv2?noop=true")
.unmarshal(bindy)
.wireTap("direct:logBody")
.to("mock:result");

from("direct:logBody")
.split().body()
.log("Row# ${exchangeProperty.CamelSplitIndex} : ${name}");

关于java - 如何在 Apache Camel 中记录 csv 的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51266329/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com