由于历史原因,我们必须适应旧的系统。这是xml请求:
<?xml version="1.0" encoding="UTF-8"?>
<User>
<Age>18</Age>
<Gender>Male</Gender>
<PassWord>string</PassWord>
<UserName>
<FirstName>Maxwell</FirstName>
<LastName>xxx</LastName>
<MiddleName>string</MiddleName>
</UserName>
</User>
现在,我们需要使用spring boot实现使用者服务。但是在映射到bean时它不支持有效负载大小写不敏感。
@Data
public class User{
private Username UserName;
private String PassWord;
private int Age;
private String Gender;
@Data
class UserName{
private String LastName;
private String MiddleName;
private String FirstName;
}
}
我知道我可以使用@XmlElement,但在与swagger @annotation集成时会遇到一些问题。
我想使用@RequestBody Spring注释直接将XML有效负载映射到Java Object。我的问题是如何使java Object映射到忽略大小写的字段。
我找到了处理这个问题的方法。我们可以将jackson-dataformat-xml导入到pom.xml中
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
<version>2.9.6</version>
</dependency>
如果不使用jackson-dataformat-xml,SpringBoot会自动使用JDK的JAXB来转换XML。它会区分大小写。