Apache Camel XML-для-JSON

1

У меня есть простой XML файл и вам нужно преобразовать его в JSON, используя JAR camel-xmljson. Я начал использовать верблюд, используя:

Main main = new Main();
main.addRouteBuilder(new ConvertXmlToJson());
main.enableHangupSupport();
main.run();

И мой метод configure выглядит так:

@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 на консоли, а не файл.

Заранее спасибо за помощь.

  • 0
    Вы уверены, что отправляете XML для direct:marshal или у вас есть файл в resources ? Это должен быть src/main/resources ?
  • 0
    @hveiga Моя директория ресурсов существует прямо в папке проекта. Я могу заполучить файл при выполнении - File xmlDocumentFile = new File ("resources / SampleFile.xml");
Теги:
apache-camel

1 ответ

1
Лучший ответ

Просто измените свой маршрут на:

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

Затем скопируйте SimpleFile.xml в папку "Ресурсы"/"Входящие", запустите приложение, и вы получите JSON в ресурсах/исходящих

  • 0
    Спасибо, как это будет работать, если в папке resource / inbox есть 2 XML-файла? Можем ли мы предоставить конкретный XML-файл в качестве входных данных?
  • 0
    если у вас есть 2 XML-файла в ресурсе / входящей папке, вы получите 2 JSON-файла в ресурсе / исходящей папке. Какой смысл указывать XML-файл в качестве входных данных?
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню