在使用SpringBoot开发的REST API中映射到Java Object时,使XML有效内容字段不区分大小写

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在使用SpringBoot开发的REST API中映射到Java Object时,使XML有效内容字段不区分大小写相关的知识,希望对你有一定的参考价值。

由于历史原因,我们必须适应旧的系统。这是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;
    }
}

结果:enter image description here

我知道我可以使用@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。它会区分大小写。

以上是关于在使用SpringBoot开发的REST API中映射到Java Object时,使XML有效内容字段不区分大小写的主要内容,如果未能解决你的问题,请参考以下文章

在带有 MVC REST API 的 SpringBoot 项目中返回 406 响应

Springboot和Spring Security中认证成功后如何授权Rest API调用

使用 SpringBoot 配置文件模拟 REST API 调用

无法在 SpringBoot 中使用 ControllerAdvice 返回 rest api 响应

SpringBoot项目中利用Swagger搭建REST API 比 Postman香 !

SpringBoot项目中利用Swagger搭建REST API 比 Postman香 !