【发布时间】:2020-09-28 13:31:09
【问题描述】:
我正在尝试使用自定义反序列化器在 Spring Boot 测试中解析 XML。
@SpringBootTest
public class MyTest {
@Autowired
ObjectMapper mapper;
@Test
public void shouldParseXmlString() {
final String input = "<abc>value</abc>" // Some XML string which is valid xml
MyClass myClass = mapper.readValue(input, MyClass.class);
assertEquals("value", myClass.getAbc());
}
}
我有一个自定义反序列化器,它扩展了 JsonDeserializer<MyClass> 并将 xml 反序列化为 MyClass。当我直接使用XmlMapper 注入它时效果很好,但是当我尝试在测试中注入ObjectMapper 时它会失败并出现以下错误。
com.fasterxml.jackson.core.JsonParseException: Unexpected character ('<' (code 60)) expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')
如错误所示,它试图将输入字符串解析为 json 而不是 xml。如何通过注入 ObjectMapper 或 XmlMapper 来解析 xml?
在pom.xml 中,我添加了jackson-core 和jackson-dataformat-xml 作为版本2.10.0 的依赖项
【问题讨论】:
-
答案有帮助吗?
标签: java xml spring-boot jackson jackson-dataformat-xml