【问题标题】:Java+Jackson+XML: serialize a java object properties as XML elements with same namesJava+Jackson+XML:将一个java对象的属性序列化为同名的XML元素
【发布时间】:2018-01-04 08:44:58
【问题描述】:

我有一个 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 对象序列化为所需格式?如果是,那我该怎么做?

我正在使用 Jackson 库:

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

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

}

【问题讨论】:

  • @MichalFoksa Mixins 解决了另一种问题 - 我可以使用带或不带 mixin 的注释,但问题仍然存在:如何序列化为请求的格式。

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


【解决方案1】:

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

public class Point {

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

【讨论】:

    猜你喜欢
    • 2013-01-20
    • 1970-01-01
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    • 2012-07-05
    • 2021-09-19
    • 2020-11-27
    • 2012-06-06
    相关资源
    最近更新 更多