在使用 SpringBoot 开发的 REST API 中映射到 Java 对象时,使 JSON 有效负载字段不区分大小写
Posted
技术标签:
【中文标题】在使用 SpringBoot 开发的 REST API 中映射到 Java 对象时,使 JSON 有效负载字段不区分大小写【英文标题】:Make JSON payload fields case insensitive when mapping to Java Object in REST API developed using SpringBoot 【发布时间】:2015-09-04 15:36:09 【问题描述】:我正在研究使用 SpringBoot 应用程序开发的 REST API。在这里,我想在映射到 Java 对象时使有效负载(JSON)中的字段不区分大小写。下面是我的代码。
有效载荷 "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 对象映射到忽略大小写的字段。
问候, 拉克什
【问题讨论】:
我想在 spring mvc 中做。有什么想法吗? 【参考方案1】:好吧,如果它是 Spring Boot 应用程序,您可以在 application.properties
文件中使用它:
spring.jackson.mapper.accept_case_insensitive_properties=true
或者如果你使用 yaml:
spring:
jackson:
mapper:
accept_case_insensitive_properties: true
【讨论】:
我想在 spring mvc 中做。有什么想法吗? @parladneupane 这可能会有所帮助:baeldung.com/properties-with-spring 我需要使用连字符:spring.jackson.mapper.accept-case-insensitive-properties=true
对于在application.properties
中使用的任何人,请改用spring.jackson.mapper.accept-case-insensitive-properties=true
在.yml
中也可以使用连字符:spring.jackson.mapper.accept-case-insensitive-properties: true
【参考方案2】:
我最近通过 Annotation config 找到了解决方案:
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>
祝你好运。
【讨论】:
以上是关于在使用 SpringBoot 开发的 REST API 中映射到 Java 对象时,使 JSON 有效负载字段不区分大小写的主要内容,如果未能解决你的问题,请参考以下文章
在使用SpringBoot开发的REST API中映射到Java Object时,使XML有效内容字段不区分大小写
在带有 MVC REST API 的 SpringBoot 项目中返回 406 响应