在使用 SpringBoot 开发的 REST API 中,使 JSON 有效负载字段不区分大小写

2022-09-03 17:42:34

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

Payload {“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 Object。我的问题是,如何使java对象映射到忽略大小写的字段。

问候, 拉克什


答案 1

好吧,如果它的Spring Boot应用程序,您可以在文件中使用它:application.propertiesspring.jackson.mapper.accept_case_insensitive_properties=true

或者如果你使用 yaml:

spring:
  jackson:
    mapper:
      accept_case_insensitive_properties: true

答案 2

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

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>

祝你好运。