我有两个问题: 1.为什么在json文件中创建了@ -Signs? 2.为什么xml-json编组后进程仍在运行? (看看我的EclipseConsole-Screenshot。我必须在每次运行时终止进程。)
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"
},
答案 0 :(得分:1)
这就是XmlJson如何开箱即用,以区分值是XML属性还是XML值。
Camel使用的JSon lib项目不再那么活跃了,所以你可能无法让它们添加一些功能来配置是否输出@
。