首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jackson-dataformat-xml库将属性设置为不带POJO的xml标记

使用jackson-dataformat-xml库将属性设置为不带POJO的xml标记
EN

Stack Overflow用户
提问于 2021-11-11 14:14:52
回答 1查看 253关注 0票数 0

我使用HashMap将其序列化为xml:

代码语言:javascript
复制
var mapper = new XmlMapper();
HashMap<String, Object> hm = new HashMap<>();
hm.put("header", "value");
System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(hm));

输出

代码语言:javascript
复制
<HashMap>
  <header>value</header>
</HashMap>

问题是,我需要添加未知的,直到运行时数量的属性到头。

代码语言:javascript
复制
<HashMap>
  <header attr1= "text" attr2 = "another text" >value</header>
</HashMap>

除了自定义序列化程序之外,还有其他解决办法吗?

EN

回答 1

Stack Overflow用户

发布于 2021-11-11 15:57:14

你可以这样做

代码语言:javascript
复制
public class TestXml {
    
    class HeaderWrapper {
        @JacksonXmlProperty(isAttribute = true)
        private String attr1 = "text";

        @JacksonXmlProperty(isAttribute = true)
        private String attr2 = "another text";
    
        private String header = "value"
    }

    @Test
    void test() throws JsonProcessingException {
        var mapper = new XmlMapper();
        var h1 = new HashMap<>();
        h1.put("test", new NullWrapper());
        System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(h1));
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69929777

复制
相关文章

相似问题

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