[英]Camel JSON to XML conversion issue
如果我使用Camel unmarshal和XmlJsonDataFormat
使用默認名稱空間將JSON轉換為XML,則所有開頭的xml元素的末尾都有一個空格。 我沒有發現可能影響這種行為。
這是轉換后的XML:
<Message xmlns="http://example.com/Message/1">
<Header >
<Header1 >header 1</Header1>
<Header2 >header 2</Header2>
</Header>
</Message>
這是我的路線定義:
public void configure() throws Exception {
// create JSON to XML data format
XmlJsonDataFormat json2XmlFormat = new XmlJsonDataFormat();
json2XmlFormat.setEncoding("UTF-8");
json2XmlFormat.setRootName("Message");
List<XmlJsonDataFormat.NamespacesPerElementMapping> namespaces = new ArrayList<XmlJsonDataFormat.NamespacesPerElementMapping>();
namespaces.add(new XmlJsonDataFormat.NamespacesPerElementMapping("Message", "||http://example.com/Message/1|"));
json2XmlFormat.setNamespaceMappings(namespaces);
from("direct:input")
.unmarshal(json2XmlFormat)
.log("${body}");
}
轉換后的XML對空格仍然有效。 但是,我想提出一個解決方案。
setSkipWhitespace()
和setTrimSpaces()
僅適用於XML到JSON
任何想法?
如果定義的命名空間不帶|
則會在標記中沒有空格的情況下得到結果 字符(相當於沒有名稱空間):
namespaces.add(new XmlJsonDataFormat.NamespacesPerElementMapping("Message", "http://example.com/Message/1"));
或者,如果為名稱空間定義了適當的別名,例如ns
:
namespaces.add(new XmlJsonDataFormat.NamespacesPerElementMapping("Message", "|ns|http://example.com/Message/1|"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.