Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache camel camel如何使用流模式处理json?_Apache Camel - Fatal编程技术网

Apache camel camel如何使用流模式处理json?

Apache camel camel如何使用流模式处理json?,apache-camel,Apache Camel,为了在流模式下读取json和解组,驼峰OOB中提供了哪些选项?如果不是现成的,如何实现这一点 我发现camel xstream可能会有所帮助。流媒体模式是默认的吗?还是我们需要做些别的事情来让它在流媒体模式下读取 还有杰克逊流媒体api。骆驼可以到达吗 一些例子会有所帮助。 多亏了您可以使用format,将Java对象封送到JSON并从JSON中解封 像.marshall().json(JsonLibrary.Jackson)这样使用Jackson库的东西,您也可以使用其他库 下面是一个示例配置

为了在流模式下读取json和解组,驼峰OOB中提供了哪些选项?如果不是现成的,如何实现这一点

我发现camel xstream可能会有所帮助。流媒体模式是默认的吗?还是我们需要做些别的事情来让它在流媒体模式下读取

还有杰克逊流媒体api。骆驼可以到达吗

一些例子会有所帮助。 多亏了您可以使用format,将Java对象封送到JSON并从JSON中解封

.marshall().json(JsonLibrary.Jackson)
这样使用Jackson库的东西,您也可以使用其他库

下面是一个示例配置,用于流式传输csv文件内容并转换为JSON,然后调用MyBean类的publish方法

  CsvDataFormat csv = new CsvDataFormat();
  csv.setDelimiter(","); 
  csv.setQuoteDisabled(true);
  csv.setUseMaps(true);
  csv.setLazyLoad(true);
  csv.setHeader(Arrays.asList("head1","head2","head3","message"));

from("file:///test/?fileName=test.csv&noop=true").split(body().tokenize("\n")).streaming().unmarshal(csv).marshal().json(JsonLibrary.Jackson).bean(MyBean.class,"publish").log("done.").end();

您可以使用json格式的解组器。像这样:

.unmarshal().json(JsonLibrary.Jackson, YourClass.class)
.process(new Processor() {
                        @Override
                        public void process(Exchange exchange) throws Exception {
                           YourClass yourClass = exchange.getIn().getBody(YourClass.class);
})

在第一个示例中,您可以在Pojo中使用它,以便在如下流程中操作数据:

.unmarshal().json(JsonLibrary.Jackson, YourClass.class)
.process(new Processor() {
                        @Override
                        public void process(Exchange exchange) throws Exception {
                           YourClass yourClass = exchange.getIn().getBody(YourClass.class);
})