Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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
我可以通过SpringDSL在Camel中将压缩文件拆分为json组件吗_Json_Apache Camel - Fatal编程技术网

我可以通过SpringDSL在Camel中将压缩文件拆分为json组件吗

我可以通过SpringDSL在Camel中将压缩文件拆分为json组件吗,json,apache-camel,Json,Apache Camel,简而言之,我需要一个包含json的Gzip文件,与本例非常类似,解压缩它(我知道如何做),将每个json对象作为字符串,并将其推送到AMQ,从那里它将弹出到Web服务。对于一个对象,我可以接受所有这些,但我将接收一个表示数组的文件。如果这是一个字符串或xml数组,我可以看到Camel如何处理它,但我看不到分割json的方法。此外,这将需要流式处理,因为这些文件可能非常大。编辑以使请求更清晰,并提供一个json示例 您应该能够使用jsonpath表达式拆分传入消息(文件)并单独处理每个元素 <

简而言之,我需要一个包含json的Gzip文件,与本例非常类似,解压缩它(我知道如何做),将每个json对象作为字符串,并将其推送到AMQ,从那里它将弹出到Web服务。对于一个对象,我可以接受所有这些,但我将接收一个表示数组的文件。如果这是一个字符串或xml数组,我可以看到Camel如何处理它,但我看不到分割json的方法。此外,这将需要流式处理,因为这些文件可能非常大。编辑以使请求更清晰,并提供一个json示例


您应该能够使用
jsonpath
表达式拆分传入消息(文件)并单独处理每个元素

<route>
  <from uri="file://path" />
  <split>
    <jsonpath>$.</jsonpath>
    <to uri="direct:doSomething">
  </split>
</route>

$.

目前还不清楚您在做什么,您需要指导。如果您不知道如何格式化json,那么还是把它放在上面吧。我们可以稍后再解决它!:)谢谢你,神奇的是我让它看起来很好。我知道这个json比大多数示例都要复杂,但我不想发现在一个相当简单的示例中使用的东西在一个更大的示例中失败了。这个例子是一个完全虚构的例子,所以如果它没有商业意义,这就是为什么,…好的,我喜欢这个答案,但我以前读过,我不能用流媒体做这件事。但这可能已经过时了。我也读了同样的内容,但据我所知,这不是流媒体。因为这不做流处理,所以在处理“大”json文件时可能会出现问题,因为内存消耗可能会急剧增加。如果是这样,可能需要另一种方法。这将需要处理流的额外工作。最后一个要求指定,由于json对象的数量,我们必须能够流式处理。Eek!没有抓住那一点。恐怕在这种情况下我没有什么见解可以分享。jsonpath还没有流媒体支持,但PR正在进行中:
<route>
  <from uri="file://path" />
  <split>
    <jsonpath>$.</jsonpath>
    <to uri="direct:doSomething">
  </split>
</route>