java - Java,Jackson,将对象转换为 xml,无效字符问题
问题描述
我正在尝试使用杰克逊将对象转换为 xml
XmlMapper xmlMapper = new XmlMapper();
xmlMapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, true);
xmlMapper.writeValue(createFileResult.getFile(), detailsProductDTOs);
但是,因为我的对象在某处包含无效的 xml 字符,所以出现错误。有没有办法告诉杰克逊忽略这种角色?或任何其他解决方案?
Caused by: java.io.IOException: Invalid white space character (0xb) in text to output (in xml 1.1, could output as a character entity)
at com.ctc.wstx.api.InvalidCharHandler$FailingHandler.convertInvalidChar(InvalidCharHandler.java:56)
at com.ctc.wstx.sw.XmlWriter.handleInvalidChar(XmlWriter.java:629)
at com.ctc.wstx.sw.BufferingXmlWriter.writeCharacters(BufferingXmlWriter.java:583)
at com.ctc.wstx.sw.BaseStreamWriter.writeCharacters(BaseStreamWriter.java:469)
at com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator.writeString(ToXmlGenerator.java:588)
解决方案
最后,我自己解决了这个问题。由于错误表明 xml 1.1 支持这种字符。因此,只需添加以下配置即可解决问题:
xmlMapper.configure(ToXmlGenerator.Feature.WRITE_XML_1_1, true);
推荐阅读
- c# - 在 C# 中,异步任务在执行之前等待完成另一个异步任务
- c# - 我需要将字符串数据从字节转换为浮点
- node.js - 如何在猫鼬中 30 分钟后从文档中删除字段
- html - 如何在另一行 pug 中写入特定列(动态 html)
- reactjs - 如何在 React 条形图中的堆栈下方绘制辅助标签
- terminal - 如何将 Windows 中的终端更改为自定义终端
- java - 从请求正文的“用户名或电子邮件”字段中识别并验证用户名和电子邮件
- javascript - 如何在Javascript中拖放后释放对象
- java - 如何在 VSCode 中使用命令行参数运行 java?
- python - Python Discord 机器人 message.content