【问题标题】:Apache Camel XML-to-JSONApache Camel XML 到 JSON
【发布时间】:2014-07-31 14:03:40
【问题描述】:

我有一个简单的 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 也可以。

提前感谢您的帮助。

【问题讨论】:

  • 您确定要向direct:marshal 发送XML 还是在resources 中有文件?应该是src/main/resources
  • @hveiga 我的“资源”目录直接存在于项目文件夹下。我可以在执行时获取文件 -- File xmlDocumentFile = new File("resources/SampleFile.xml");

标签: java xml apache-camel


【解决方案1】:

只需将您的路线更改为:

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

然后将 SimpleFile.xml 复制到资源/收件箱中,运行应用程序,您将在资源/发件箱中获得 JSON

【讨论】:

  • 谢谢,如果资源/收件箱文件夹中有 2 个 XML 文件,它将如何工作?我们可以提供特定的 XML 文件作为输入吗?
  • 如果您在资源/收件箱中有 2 个 XML 文件,您将在资源/发件箱中获得 2 个 JSON 文件。将 XML 文件指定为输入有什么意义?
  • 我想提供一个大的 XML 作为输入,需要 JSON 格式的输出。
  • 这不起作用,我的代码看起来像: from("file:C:/inbox").marshal(xmlJsonFormat).to("file:C:/outbox"); -- 我将 XML 文件放在“收件箱”文件夹中。
  • 没有错误,它只是通过而不生成JSON输出。
猜你喜欢
  • 2015-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-02
  • 1970-01-01
相关资源
最近更新 更多