簡體   English   中英

駱駝JSON到XML的轉換問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM