2016-09-07 1 views
1

У меня есть два вопроса: 1. Почему @ -Signs созданы в json-файле? 2. Почему процесс все еще запущен после сортировки xml-json? (Смотрите мою EclipseConsole-Screenshot Я должен завершить процесс каждый прогон.).Java Apache Camel XML JSON marshal создает At-Signs

MyRouteBuilder метод настройки

public void configure() throws Exception{ 

    XmlJsonDataFormat xmlJsonFormat = new XmlJsonDataFormat(); 

    xmlJsonFormat.setEncoding("UTF-8"); 
    xmlJsonFormat.setForceTopLevelObject(true); 
    xmlJsonFormat.setTrimSpaces(true); 
    xmlJsonFormat.setRootName("newRoot"); 
    xmlJsonFormat.setSkipNamespaces(true); 
    xmlJsonFormat.setRemoveNamespacePrefixes(true); 
    xmlJsonFormat.setExpandableProperties(Arrays.asList("d", "e")); 

    from("timer:timer1?period=100&repeatCount=1") 
    .to("https://...foo") 
    .marshal(xmlJsonFormat) 
    .to("file:target/messages/others?noop=true&fileName=message.json"); 
} 

входного XML - пример сегмента

<hotel name="Hotel foo" cat="5" mh="xxx"/> 
<date from="2016-10-16" to="2016-10-18"/> 

Выход JSON - примерный сегмент

 "hotel" : { 
     "@name" : "Hotel foo", 
     "@cat" : "5", 
     "@mh" : "xxx" 
    }, 
    "date" : { 
     "@from" : "2016-10-18", 
     "@to" : "2016-10-19" 
    }, 

Eclipse Console

ответ

1

Вот как XmlJson работает из коробки, чтобы различать, является ли значение атрибута XML или значение XML.

Проект JSon lib, который использует Camel, не так активно развит, поэтому вы не сможете заставить их добавить некоторые функции для настройки вывода @ или нет.

Смежные вопросы