在使用 SpringBoot 开发的 REST API 中映射到 Java 对象时,使 JSON 有效负载字段不区分大小写

Make JSON payload fields case insensitive when mapping to Java Object in REST API developed using SpringBoot

我正在研究使用 SpringBoot 应用程序开发的 REST API。在这里,我想让有效负载 (JSON) 中的字段在映射到 Java 对象时不区分大小写。下面是我的代码。

有效负载 {"limit":1,"name":"MATTHEW PHILLIPS"}

请求对象

private String limit;
private String name;

public String getLimit() {
      return limit;
    }

    public void setLimit(String limit) {
        this.limit = limit;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

我直接使用 @RequestBody Spring 注释将 JSON 有效负载映射到 java 对象。我的问题是如何使 java 对象映射到忽略大小写的字段。

此致, 拉凯什

我最近通过注释配置找到了一个解决方案:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.fasterxml.jackson.databind.MapperFeature;
import com.fasterxml.jackson.databind.ObjectMapper;

@Configuration
public class Config {

    @Bean
    public ObjectMapper objectMapper() {
        ObjectMapper mapper = new ObjectMapper();
        mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
        return mapper;
    }

}

我正在使用这些依赖项:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.3.RELEASE</version>
</parent>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
    </dependency>

    <dependency>
        <groupId>com.fasterxml.jackson.module</groupId>
        <artifactId>jackson-module-jaxb-annotations</artifactId>
        <version>2.6.5</version>
    </dependency>

祝你好运。

好吧,如果它是 Spring 引导应用程序,您可以在 application.properties 文件中包含它: spring.jackson.mapper.accept_case_insensitive_properties=true

或者如果你使用 yaml:

spring:
  jackson:
    mapper:
      accept_case_insensitive_properties: true