首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Jackson XmlMapper进行序列化

使用Jackson XmlMapper进行序列化
EN

Stack Overflow用户
提问于 2021-05-03 22:03:29
回答 1查看 86关注 0票数 0

我正在尝试用Jackson XmlMapper将对象序列化为xml字符串。我的目标是:

代码语言:javascript
复制
@JacksonXmlRootElement(namespace = "http://www.w3.org/2001/XMLSchema", localName = "PersonRO")
public class PersonInfo {

    @JacksonXmlProperty(localName = "PersonID")
    private String personId;

    @JacksonXmlProperty(localName = "ReturnCode")
    private Integer errorCode;

    // getters, setters
}

我需要在输出中实现以下xml:

代码语言:javascript
复制
        <PersonRO xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
          <PersonID>00000000000001</PersonID>
          <ReturnCode>150</ReturnCode>
        </PersonRO>

这项任务看起来很简单,但首先我遇到了实现多个命名空间(xmlns:xsd,xmlns:xsi)的问题,而且字段的命名空间也是空的,尽管我根本不需要它们。

到目前为止,我的结果是:

代码语言:javascript
复制
<PersonRO xmlns="http://www.w3.org/2001/XMLSchema">
  <PersonID xmlns="">00000000000001</PersonID>
  <ReturnCode xmlns="">150</ReturnCode>
</PersonRO>

那么,如何使用Jackson XmlMapper实现与上面完全相同的结果呢?(我已经看到您可以配置XmlFactory等,但不能正确执行...)

如果您需要任何澄清,请让我知道,并提前感谢您。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-03 23:23:42

我找到了答案:

代码语言:javascript
复制
@JacksonXmlRootElement(localName = "PersonRO")
public class PersonInfo {

    @JacksonXmlProperty(isAttribute = true, localName = "xmlns:xsd")
    private final String xmlnsXsd = "http://www.w3.org/2001/XMLSchema";

    @JacksonXmlProperty(isAttribute = true, localName = "xmlns:xsi")
    private final String xmlnsXsi = "http://www.w3.org/2001/XMLSchema-instance";


    @JacksonXmlProperty(localName = "PersonID")
    private String personId;

    @JacksonXmlProperty(localName = "ReturnCode")
    private Integer errorCode;

    // getters, setters
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67370310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档