【问题标题】:JAXB - How to marshal java object without headerJAXB - 如何编组没有标头的 java 对象
【发布时间】:2017-08-16 12:59:18
【问题描述】:

我正在尝试编组一个 java 对象,但我想删除 Jaxb 引入的标头。

对象:

@XmlRootElement
public class FormElement implements Serializable {
    private String id;
    private String name;
    private Integer order;
}

预期输出:

<element>
    <id>asd</id>
    <name>asd</name>
    <order>1</order>
</element>

我的输出:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<formElement>
  <id>asd</id>
  <name>asd</name>
  <order>1</order>
</formElement>

我的元帅方法:

public String marshal() {
        JAXBContext context;
        try {
            context = JAXBContext.newInstance(FormElement.class);
            Marshaller marshaller = context.createMarshaller();
            StringWriter stringWriter = new StringWriter();
            marshaller.marshal(this, stringWriter);
            return stringWriter.toString();
        } catch (JAXBException e) {
        }
        return null;
    }

我怎样才能删除它?

提前致谢。

【问题讨论】:

    标签: java xml jaxb marshalling


    【解决方案1】:

    我已经用

    解决了

    marshaller.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);

    并将(name = "element") 添加到@XmlRootElement 注释中。

    正确的方法:

    public String marshal() {
        JAXBContext context;
        try {
            context = JAXBContext.newInstance(FormElement.class);
            Marshaller marshaller = context.createMarshaller();
            StringWriter stringWriter = new StringWriter();
            marshaller.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);
            marshaller.marshal(this, stringWriter);
            return stringWriter.toString();
        } catch (JAXBException e) {
            String mess = "Error marshalling FormElement " + e.getMessage()
                    + (e.getCause() != null ? ". " + e.getCause() : " ");
            System.out.println(mess);
        }
        return null;
    }
    

    以及正确的注释:

    @XmlRootElement(name = "element")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-10
      • 2013-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-03
      • 1970-01-01
      相关资源
      最近更新 更多