我正在尝试使用Spring的RestTemplate自动反序列化XML格式响应。我正在使用Jackson的
这是基于以下XML示例:
然而,使用上述注释的类时,字段总是设置为
它能正常工作,但我觉得有点笨拙。是否有一种方法可以使JAXB注释像我的第一个示例那样工作?
Jackson提供
jackson-dataformat-xml
模块,Spring Boot已进行了自动配置。 我想在要反序列化的类中使用JAXB注释,但它似乎无法工作。以下是我希望该类的示例:@XmlRootElement(name="Book")
public class Book {
@XmlElement(name="Title")
private String title;
@XmlElement(name="Author")
private String author;
}
这是基于以下XML示例:
<Book>
<Title>My Book</Title>
<Author>Me</Author>
</Book>
然而,使用上述注释的类时,字段总是设置为
null
。我进行了一些实验,发现如果我使用Jackson的@JsonProperty
来注释子元素,则反序列化会起作用:@XmlRootElement(name="Book")
public class Book {
@JsonProperty("Title")
private String title;
@JsonProperty("Author")
private String author;
}
它能正常工作,但我觉得有点笨拙。是否有一种方法可以使JAXB注释像我的第一个示例那样工作?
Jackson提供
jackson-module-jaxb-annotations
模块,用于XML数据绑定与JAXB注释一起使用。但是,我不确定如何设置由RestTemplate
使用的ObjectMapper
来使用此模块。