Jackson-dataformat-xml 是 Jackson 官方提供的 XML 数据处理扩展模块,用于实现 Java 对象与 XML 的序列化/反序列化,需配合 jackson-databind 使用,不支持 JSON 与 XML 字符串直接互转。
Jackson-dataformat-xml 是什么
它是一个 Jackson 官方提供的扩展模块,用于在 Java 中读写 XML 数据,和 jackson-databind 配合使用,让 ObjectMapper 支持 XML 序列化/反序列化。它不处理 JSON —— JSON 是 jackson-databind 本体的能力;XML 支持是靠这个插件“加装”的。
关键点:它不是独立的 JSON↔XML 转换器,不能直接把一段 JSON 字符串转成 XML 字符串(反之亦然)。它做的是「Java 对象 ↔ XML」和「Java 对象 ↔ JSON」,中间必须经过对象这一层。
如何用它实现 Java 对象 ↔ XML
先确保 Maven 引入正确依赖:
com.fasterxml.jackson.dataformat jackson-dataformat-xml 2.15.2
然后创建 XmlMapper(它是 ObjectMapper 的子类,专为 XML 优化):
立即学习“Java免费学习笔记(深入)”;
- 不要用
new ObjectMapper()处理 XML,它默认不支持 XML 注解和格式 - 要用
new XmlMapper()或new XmlMapper(new JacksonXmlModule()) - 常见遗漏:没配置
XmlMapper的setDefaultUseWrapper(false),导致生成多余外层包装标签 - 若需兼容 JDK 17+ 的模块系统,记得添加
--add-opens java.base/java.lang=ALL-UNNAMED
示例:将对象转为 XML 字符串