Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/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
Java ApacheCamelXML到JSON_Java_Xml_Apache Camel - Fatal编程技术网

Java ApacheCamelXML到JSON

Java ApacheCamelXML到JSON,java,xml,apache-camel,Java,Xml,Apache Camel,我有一个简单的XML文件,需要使用camel-xmljsonJAR将其转换为JSON。我已开始使用以下内容: Main main = new Main(); main.addRouteBuilder(new ConvertXmlToJson()); main.enableHangupSupport(); main.run(); 我的配置方法如下所示: @Override public void configure() throws Exception { XmlJsonDataForm

我有一个简单的XML文件,需要使用
camel-xmljson
JAR将其转换为JSON。我已开始使用以下内容:

Main main = new Main();
main.addRouteBuilder(new ConvertXmlToJson());
main.enableHangupSupport();
main.run();
我的配置方法如下所示:

@Override
public void configure() throws Exception {
    XmlJsonDataFormat xmlJsonFormat = new XmlJsonDataFormat();
    xmlJsonFormat.setForceTopLevelObject(true);

    // from XML to JSON

    //#1
    from("direct:marshal").marshal(xmlJsonFormat).to("mock:json"); 

    //#2
    //from("file:resources/SimpleFile.xml").marshal(xmlJsonFormat).to("file:resources/JsonOutput.txt");
}
现在我无法理解应该在哪里传递xml对象?#2看起来正确吗?当我执行其中任何一个时,都不会发生任何事情

在控制台而不是文件上打印转换后的JSON也可以


提前感谢您的帮助。

只需将路线更改为:

from("file:resource/inbox").marshal(xmlJsonFormat).to("file:resource/outbox");

然后将SimpleFile.xml复制到resource/inbox中,运行应用程序,您将在resource/outbox中获得JSON

您确定要将xml发送到
direct:marshal
还是在
resources
中有文件?是否应该是
src/main/resources
?@hveiga My'resources'目录直接位于项目文件夹下。当我执行--file xmlDocumentFile=new file(“resources/SampleFile.xml”);谢谢,如果资源/收件箱文件夹中有2个XML文件,它将如何工作?我们可以提供特定的XML文件作为输入吗?如果资源/收件箱中有2个XML文件,那么资源/发件箱中将有2个JSON文件。指定XML文件作为输入有什么意义?我想提供一个大XML作为输入,并需要JSON格式的输出。这不起作用,我的代码看起来像:from(“file:C:/inbox”).marshal(xmlJsonFormat).to(“file:C:/outbox”);--我将XML文件放在“收件箱”文件夹中。没有错误,它只是通过而不生成JSON输出。