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

问题描述 投票:0回答:1

由于历史原因,我们必须适应旧的系统。这是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映射到忽略大小写的字段。

spring-boot xml-parsing jaxb mapping
1个回答
0
投票

我找到了处理这个问题的方法。我们可以将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。它会区分大小写。

© www.soinside.com 2019 - 2024. All rights reserved.