在java fastxml中创建Xml

时间:2017-10-12 12:54:30

标签: java xml jackson fasterxml

我正在使用fasterxml.jackson来使用POJO创建xml。

我期待输出如下:

<Customer xmlns="">
    <firstname>FirstNameA</firstname>
    <middlename>LastNameA</middlename>
</Customer>

But getting output as:
<Customer xmlns="">
    <item>
        <firstname>FirstNameA</firstname>
        <middlename>LastNameA</middlename>
    </item>
</Customer>

为什么会附加<item>标记。我没有在任何地方添加<item>标记,但输出显示<item>标记。我的代码中有什么问题?

这是POJO

    @JacksonXmlRootElement(localName = "Customer")
    public class Customer {  
        @JacksonXmlProperty(localName="firstname")
        private String firstname;

        @JacksonXmlProperty(localName="middlename")
        private String middlename;


        public Customer(String firstname, String middlename) {
            this.firstname = firstname;
            this.middlename = middlename;
        }
}

// code to create xml
    ObjectMapper xmlMapper = new XmlMapper();
            JacksonXmlModule module = new JacksonXmlModule();
            module.setDefaultUseWrapper(false);
            Customer[] cust = new Customer[]{new Customer("FirstNameA", "LastNameA")};
            try {
                String xml = xmlMapper.writeValueAsString(cust);
                return xml;
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }

1 个答案:

答案 0 :(得分:1)

您的代码中的客户是一个数组,您不能以您发布的xml样式添加多个项目:

<Customer xmlns="">
    <firstname>FirstNameA</firstname>
    <middlename>LastNameA</middlename>
</Customer>

只需替换代码:

Customer cust = new Customer("FirstNameA", "LastNameA");