Java + Jackson + XML:将java对象属性序列化为具有相同名称的XML元素

时间:2017-07-28 10:15:09

标签: java xml serialization jackson jackson-dataformat-xml

我有一个Java对象,我想使用 Jackson 库将其序列化为 XML

public class Point {
    private Integer x;
    private Integer y;
    //getters/setters
}

我希望将其序列化为以下格式:

<point>
    <property name="x" value="1" />
    <property name="y" value="1" />
</point>

而不是我用Jacskon得到的东西:

<point>
    <x>1</x>
    <y>1</y>
</point>

我不想更改Point对象属性或结构。有办法吗? 使用Jackson注释或自定义序列化将Point对象序列化为所需的格式?如果是,那我该怎么做?

我正在使用杰克逊图书馆:

public class Serializer {
    XmlMapper mapper = new XmlMapper();

    public void serialize(File file, Object object) throws IOException {
        mapper.writeValue(file, object);
    }

}

1 个答案:

答案 0 :(得分:1)

您需要将这些属性标记为如下属性:

public class Point {

    @JacksonXmlProperty(isAttribute = true)
    private Integer x;
    @JacksonXmlProperty(isAttribute = true)
    private Integer y;
    //getters/setters
}