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>

现在,我们需要使用 springboot 来实现消费者服务。但它在映射到 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 对象。我的问题是如何使 java 对象映射到忽略大小写的字段。

4

2 回答 2

1

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

于 2018-09-11T02:53:28.083 回答
0

调用 .configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true) 到 ObjectMapper 以不区分大小写。

于 2021-11-19T20:04:30.833 回答