【问题标题】:Create Xml in java fasterxml在 java fastxml 中创建 XML
【发布时间】:2017-10-12 12:54:30
【问题描述】:

我正在使用 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>

为什么要附加&lt;item&gt; 标签。我没有在任何地方附加&lt;item&gt; 标签,但输出显示&lt;item&gt; 标签。我的代码有什么问题?

这是 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();
            }

【问题讨论】:

    标签: java xml jackson fasterxml


    【解决方案1】:

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

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

    只需在您的代码中替换:

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

    【讨论】:

    • 只需点击向上的箭头,告诉其他用户这是正确的解决方案。
    猜你喜欢
    • 2018-04-02
    • 1970-01-01
    • 2015-11-09
    • 1970-01-01
    • 2015-12-09
    • 1970-01-01
    • 1970-01-01
    • 2010-09-27
    • 1970-01-01
    相关资源
    最近更新 更多