当前位置: 首页 > 知识库问答 >
问题:

使用jackson-dataformat-xml库将属性设置为空xml标记

姜鸿
2023-03-14
HashMap<String, Object> h1 = new HashMap<>();
h1.put("test", null);
System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(h1));
<HashMap>
   <test/>
</HashMap>
<HashMap>
   <test attribute = "something"/>
</HashMap>

共有1个答案

沙海
2023-03-14

你可以这样做...

null不同的是,您需要在它周围使用一些类似于薄包装器的东西,它将指示XMLMapper打印该属性信息。

这里有一个解决问题的工作测试。

public class TestXml {
    
    class NullWrapper {
        @JacksonXmlProperty(isAttribute = true)
        private String attribute = "something";
    }

    @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));
    }
}
<HashMap>
  <test attribute="something"/>
</HashMap>
 类似资料:
  • 如果我使用jackson dataformat xml序列化JsonNode的ArrayList,它会产生以下结果: 我想把它读出来: 我尝试过使用自定义序列化程序,并确实给了我

  • 我必须处理一个遗留的Spring5[not boot]项目,并且我面临类似的问题,比如Jackson-DataFormat-XML将@responsebody转换为XML,所以我开始使用XMLMapper-input是application/text[这是XML字符串],而out是json在控制器中。但我一添加依赖项就看到了

  • 问题内容: 有没有一种方法可以通过杰克逊将xml(例如int)序列化为xml属性?我找不到任何特别的杰克逊或json批注(@XmlAttribute @ javax.xml.bind.annotation.XmlAttribute)来实现此目的。 例如 我想要的是: 但是我得到的是: 有没有一种方法来获取属性而不是元素?感谢帮助! 问题答案: 好吧,我找到了解决方案。 如果您使用jackson-d

  • 我正在使用来自另一个web服务的XML数据进行java项目。我是杰克逊框架的新手。创建POJO文件,但在映射时会显示错误,如无法识别的字段列。我不知道如何映射我的反应 XML响应 细胞集类 排课 细胞类 帮我解决这个问题。

  • 本文向大家介绍使用Java中的Jackson库将XML转换为POJO?,包括了使用Java中的Jackson库将XML转换为POJO?的使用技巧和注意事项,需要的朋友参考一下 该JSON杰克逊是一个Java库。它具有非常强大的数据绑定功能,并提供了一个框架,用于将自定义Java对象序列化为JSON并将JSON反序列化为Java对象。我们还可以使用XmlMapper 类的readValue()方法将

  • 本文向大家介绍使用Java中的Jackson库将POJO转换为XML?,包括了使用Java中的Jackson库将POJO转换为XML?的使用技巧和注意事项,需要的朋友参考一下 一个杰克逊 是一个基于Java的库,它可以为Java对象到JSON和JSON转换为Java对象很有用。一个杰克逊API是快于其他的API,需要更少的内存区域,对于大型物体良好。我们使用XmlMapper 类的writeVal