java - Jackson 完全忽略 Jaxb XML 相关的注解
问题描述
想象一下,当您有一个 Java 模型时,您必须将它序列化为 XML 和 CSV。
我使用Jaxb Marshaller
XML 和 Jackson's CsvMapper
( ObjectMapper
) 的 CSV。
由于格式略有不同,我希望杰克逊CsvMapper
忽略Jaxb
相关的注释,如@XmlType
or @XmlElement
。因为杰克逊也在获取信息/考虑 xml 注释,它会导致错误的结果。
我该怎么做?
解决方案
这就是您可能创建新的方式CsvMapper
:
CsvMapper csvMapper = new CsvMapper();
csvMapper.findAndRegisterModules();
findAndRegisterModules
方法调用findModules
哪个文档说:
使用 JDK ServiceLoader 工具以及模块提供的 SPI 来定位可用方法的方法。
因此,可能您在类路径上有jackson-module-jaxb-annotations模块,这就是CsvMapper
识别JAXB
注释的原因。
要修复它,您需要删除此方法的调用findAndRegisterModules
并仅注册您需要的这些模块。
推荐阅读
- bash - bash 脚本中带引号的参数
- awk - 比较具有不同字段分隔符的两个文件的不同列,而第二个文件的列数不相等
- omnet++ - 如何在 OMNeT UDP 数据包中添加真实数据?
- java - 如何创建一个包装器以从 jmeter 启动 junit 类
- python-3.x - 在python中比较表情符号并在它们周围放置空格
- android - 使用 Retrofit 在不同设备上上传图像/文件时出现错误代码:500 或内部服务器错误
- rest - 不使用 cookie 时是否需要细粒度的 CORS(REST API)
- java - 无法写入 Excel 文件 (Apache POI)
- javascript - $(window).ready(function() ){} 应该等待图像、css 加载
- c# - 如何消除重复的 SQL 查询以在不同的表名中执行